c++ - Qt WindowMaximize 不改变几何(C++)

标签 c++ qt geometry window-resize qmainwindow

所以我正在制作一个 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 似乎没有更新。我做错了什么?

最佳答案

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

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

关于c++ - Qt WindowMaximize 不改变几何(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884960/

相关文章:

qt - 在Qt中创建一个没有阴影的弹出窗口

python - 打开多个具有不同参数的网页。 PyQt4

java - 判断坐标是否在线

c++ - 如何正确处理 win32 GUI 消息循环?

c++ - usrsctp 发送缓冲区不会自行释放

c++ - 无法在 Qt 中读取 utf-8 文件

mysql - 在 mysql 中存储纬度、经度位置的最佳方式是什么?

html - 调整 div 圆的大小

c++ - 判断点是否属于 3D 空间中的射线

C++ 为什么 "istringstream"在名称后使用括号?