【发布时间】:2013-05-14 20:44:25
【问题描述】:
我正在尝试创建一个QMainWindow 来封装我要放入其中的QGraphicsView。我希望它开始最大化,所以我这样做:
QMainWindow *mainWindow = new QMainWindow();
mainWindow->setWindowState(Qt::WindowMaximized);
mainWindow->show();
qDebug() << mainWindow->size();
这说我的最大化窗口是 200x100,这显然是不正确的。
我是否缺少某种更新功能?我不明白为什么它不会更新大小。我也尝试过使用showMaximized(),结果相同。
编辑
我的最终目标是使用 QMainWindow 作为包含 QGraphicsScene 的 QGraphicsView 的容器。最重要的是,我希望有一个 50% 宽度和 100% 高度的 QWebView,以一切为中心。
所以,我需要宽度和高度才能使所有坐标和大小都正确。
【问题讨论】:
-
我猜这是你的一部分
main或类似的,即在事件循环开始之前。您需要等待处理事件以调整窗口大小 - 我认为show只是发布一个事件。 -
是的,它就在
main的顶部。在我看到更新后的尺寸之前,有没有推荐的方法让一切都解决? -
我猜这取决于您需要该尺寸的用途。为什么需要尺寸?
-
我有一个带有 QGraphicsScene 的 QGraphicsView,我想在其中最大化,然后附加一个 50% 宽度和 100% 高度的 QWebView,以所有内容为中心。
-
那么你应该更新你的问题来解释这就是你所追求的。听起来不是微不足道的 - 让视图与它的父级一起调整大小应该是(并且不应该需要比标准布局更多的东西),但是我不太确定 50% 的宽度。可能需要处理
resizeEvent,或垫片之类的东西。
标签: qt qmainwindow