1

我正在尝试在 MainWindow 中最大化 miniget 来启动我的应用程序。我还需要小部件来响应主窗口的大小调整,尝试了一些事情,但没有完全让它正常工作。任何想法?

谢谢

在此处输入图像描述

#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;
}
4

1 回答 1

4

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

只需确保在其中使用 QGridLayout :

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

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

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

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

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

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

这将完全一样,但存储在 .ui 文件而不是您的 .cpp 文件中。

于 2012-11-23T12:37:37.817 回答