我有一个在 Python (PyQt5) 中使用 Qt5 编写的应用程序。
我想覆盖缩放的默认行为(左上角的绿色“+”),因此它将设置适当的窗口大小,而不是最大化它以覆盖所有可用空间。
我试图覆盖 showMaximize,但从未调用过该方法。我的窗口是 QWidget 的子类,没有设置任何额外的窗口标志(即使用默认值)。
一旦用户单击该按钮,我如何覆盖事件或如何告诉我想要设置的布局系统大小?
您不能覆盖showMaximized
,因为它不是虚拟的。无法覆盖此操作。但是你可以覆盖changeEvent
. 当用户最大化窗口时将调用它。您可以重置普通窗口的位置并调整其大小。
void MyWidget::changeEvent(QEvent *e) {
QWidget::changeEvent(e);
if (e->type() == QEvent::WindowStateChange) {
if (isMaximized()) {
showNormal();
resize(200, 200);
move(100, 100);
}
}
}