我正在尝试创建一个 QMainWindow
来封装我正在插入的 QGraphicsView
. 我希望它开始最大化,所以我这样做:
QMainWindow *mainWindow = new QMainWindow();
mainWindow->setWindowState(Qt::WindowMaximized);
mainWindow->show();
qDebug() << mainWindow->size();
这说我的最大窗口是200x100,这显然是不正确的 .
我错过了某种更新功能吗?我没有't get why it wouldn't更新大小 . 我也尝试使用 showMaximized()
得到相同的结果 .
编辑
我的最终目标是使用QMainWindow作为包含QGraphicsScene的QGraphicsView的容器 . 最重要的是,我想要一个50%宽度和100%高度的QWebView,以一切为中心 .
所以,我需要宽度和高度才能使所有坐标和尺寸都正确 .
1 回答
那么,setWindowState()的效果不是立竿见影的,而是异步执行的 . 当窗口状态发生变化时,窗口小部件会收到changeEvent(),因此您应该重新实现this或resizeEvent()以在最大化发生后获取width()和height() .