如何使用PyQt4禁用窗口最大化图标?

jim*_*jim 7 python resize window pyqt pyqt4

我想知道如何禁用pyqt4中的窗口最大化按钮.我目前正在使用QWidget.setFixedSize(self,QSize)来防止用户窗口调整大小,但是仍然启用了最大化按钮,当按下该按钮会导致应用程序移动到屏幕的左上角.我基本上想要复制Windows计算器应用程序的行为,其中最大化图标是灰色的.有谁知道如何使用PyQt4实现这一目标?

Bri*_*ian 13

没有使用它,但研究似乎指向弄乱窗口标志.

QWidget有一个名为的方法setWindowFlags.

是Qt.WindowFlags类的文档.

是所有标志的参考.寻找Qt.WindowMaximizeButtonHint

通常,您似乎需要找到一种方法来启用该Qt.CustomizeWindowHint标志并禁用该Qt.WindowMaximizeButtonHint标志.无论哪种方式,你可能还想要这个,setFixedSize所以这是一个好的开始.

编辑:

就像是

win.setWindowFlags(win.windowFlags() | QtCore.Qt.CustomizeWindowHint)
win.setWindowFlags(win.windowFlags() & ~QtCore.Qt.WindowMaximizeButtonHint)
Run Code Online (Sandbox Code Playgroud)

假设您的导入是这样的

from PyQt4 import QtCore
Run Code Online (Sandbox Code Playgroud)

我希望这会打开CustomizeWindowHint旗帜并关掉WindowMaximizeButtonHint旗帜.让我知道这是否有效.

编辑:

正如OP所发现的那样,他唯一需要的结果是:

win.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)
Run Code Online (Sandbox Code Playgroud)

但要注意,因为这也将删除关闭按钮,并可能与其他窗口标志混乱.


小智 11

这完美地工作:

MainWindow.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint)
Run Code Online (Sandbox Code Playgroud)

  • 也适用于 PyQt5。 (2认同)