3

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

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

这表示我的最大化窗口是 200x100,这显然是不正确的。

我是否缺少某种更新功能?我不明白为什么它不会更新大小。我也尝试过使用showMaximized()相同的结果。

编辑

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

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

4

1 回答 1

2

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

于 2015-04-08T16:44:49.787 回答