QMdiSubWindow 的初始大小

Initial size for QMdiSubWindow

本文关键字:QMdiSubWindow      更新时间:2023-10-16

有没有办法定义子窗口小部件(继承自QMdiSubWindow)的初始大小?我不想限制最小大小或阻止它被调整大小,而只是为了在第一次以给定的大小显示窗口。

我尝试重新实现 sizeHint 并定义不同的大小策略,但即使进行了这些更改,autoAjust 调用似乎也会使窗口在首次显示时非常小(大小 200 x 200)。该窗口包含一个具有以下层次结构的小部件:QVBoxLayout -> QScrollArea -> QLabel。QLabel 用于显示尺寸为 512 x 512 的图像。

编辑:将类更正为 QMdiSubWindow。

您可以使用

resize(int w, int h)。
它不会设置最大和最小大小。
它只会更改子窗口的初始大小。
实际上,它真正做的是:它更改子窗口的"当前"大小。但当前的第一个大小是"初始"大小。所以基本上是一样的。

据我所知,Qt中没有QSubWindow这样的东西。

但是,在QWidget上调用setGeometry将设置其大小。

经过多次寻找答案和实验,我发现这对我有用。

child->parentWidget()->resize(900, 700);
child->parentWidget()->updateGeometry();
child->show();
// child->showMaximized();

您可以使用 showMaximized() 代替show(),如果稍后将窗口更改为 normal,仍将使用该(900, 700)