QT在窗口中最大化窗口小部件

时间:2012-11-23 12:14:42

标签: c++ qt

我正在尝试最大化我的应用程序,同时在MainWindow内最大化的侏儒。我还需要小部件来响应主窗口的大小调整,尝试了一些事情,但没有完全正常工作。有什么想法吗?

由于

enter image description here

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //this->setGeometry(50,50, 1280, 768);
    setWindowState(Qt::WindowMaximized);
    //MainWindow::showMaximized();
    m_pWebView = new QWebView(this);
    //set position and size
    m_pWebView->setGeometry(0,0,this->width(), this->height());
    m_pWebView->load(QUrl("http://csm.nathan"));
    //m_pWebView->show();
}

MainWindow::~MainWindow()
{
    delete ui;
}

1 个答案:

答案 0 :(得分:4)

通常当你在QtCreator中创建一个新项目时,你的QMainWindow中应该有一个“centralWidget”。

确保在其中使用QGridLayout:

this->centralWidget()->setLayout(new QGridLayout);

然后将您的QWebView添加到此小部件的布局中:

this->centralWidget()->layout()->addWidget(m_pWebView);

只要您的WebView是网格中唯一的一个元素,这应该可以完成工作。

另一种解决方案是使用QtDesigner:

  • 首先,在您的窗口中添加您的webview或任何其他窗口小部件
  • 然后点击窗口背景
  • 然后点击“网格中的布局”按钮

这将完全相同,但存储在.ui文件中而不是.cpp文件中。