0

我有一个在 Python (PyQt5) 中使用 Qt5 编写的应用程序。

我想覆盖缩放的默认行为(左上角的绿色“+”),因此它将设置适当的窗口大小,而不是最大化它以覆盖所有可用空间。

我试图覆盖 showMaximize,但从未调用过该方法。我的窗口是 QWidget 的子类,没有设置任何额外的窗口标志(即使用默认值)。

一旦用户单击该按钮,我如何覆盖事件或如何告诉我想要设置的布局系统大小?

4

1 回答 1

1

您不能覆盖showMaximized,因为它不是虚拟的。无法覆盖此操作。但是你可以覆盖changeEvent. 当用户最大化窗口时将调用它。您可以重置普通窗口的位置并调整其大小。

void MyWidget::changeEvent(QEvent *e) {
  QWidget::changeEvent(e);
  if (e->type() == QEvent::WindowStateChange) {
    if (isMaximized()) {
      showNormal();
      resize(200, 200);
      move(100, 100);
    }
  }
}
于 2013-08-07T19:37:50.063 回答