QMainWindow :: showMaximized()不更新大小

时间:2013-05-14 20:44:25

标签: qt qmainwindow

我正在尝试创建一个QMainWindow来封装我正在插入的QGraphicsView。我希望它开始最大化,所以我这样做:

QMainWindow *mainWindow = new QMainWindow();
mainWindow->setWindowState(Qt::WindowMaximized);
mainWindow->show();
qDebug() << mainWindow->size();

其中说我的最大窗口是200x100,这显然是不正确的。

我错过了某种更新功能吗?我不明白为什么它不会更新大小。我也尝试使用showMaximized()得到相同的结果。

修改

我的最终目标是使用QMainWindow作为包含QGraphicsScene的QGraphicsView的容器。最重要的是,我想要一个50%宽度和100%高度的QWebView,以所有内容为中心。

所以,我需要宽度和高度才能使所有坐标和尺寸都正确。

1 个答案:

答案 0 :(得分:1)

嗯,setWindowState()的效果不是立竿见影的,它是异步执行的。当窗口状态发生变化时,窗口小部件会收到changeEvent(),因此您应该重新实现this或resizeEvent()以在最大化发生后获取width()和height()。

相关问题