1

因此,我将 Web 浏览器作为我的第一个 Qt 项目(惊喜!),我想知道为什么调用setWindowState(Qt::WindowMaximized)不会改变窗口几何形状。我有这个代码:

从 mainwindow.h:

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
private:
    Ui::MainWindow *ui;
};

从 mainwindow.cpp:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // this->geometry() is the same here...
    setWindowState(Qt::WindowMaximized);
    ui->webView->setGeometry(0, 60, geometry().width(), geometry().height()-60);
    // ...as it is here.
}

正如您可能知道的那样,我正在尝试在窗口最大化并且 QWebView 也最大化的情况下启动应用程序。基本上,每当调整主窗口的大小时,我也想调用ui->webView->setGeometry更新高度和宽度。但是MainWindow::geometry好像没有更新。我究竟做错了什么?

4

1 回答 1

1

我将不得不仔细检查,但在您的主窗口收到显示事件之前,您的几何图形可能无法正确更新。

但是,我建议您将 QWebView 放在布局中,而不是在每次主窗口更改大小时手动调整大小。

于 2011-07-30T19:25:25.103 回答