首页 文章

QMainWindow :: showMaximized()不更新大小

提问于
浏览
2

我正在尝试创建一个 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 回答

  • 1

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

相关问题