我想知道如何禁用pyqt4中的窗口最大化按钮。我目前正在使用QWidget.setFixedSize(self,QSize)来防止用户窗口调整大小,但是仍然启用了最大化按钮,当按下该按钮会导致应用程序移动到屏幕的左上角。我基本上想要复制Windows计算器应用程序的行为,其中最大化图标是灰色的。有谁知道如何使用PyQt4实现这一目标?
答案 0 :(得分:12)
没有使用它,但研究似乎指向弄乱窗口标志。
QWidget有一个名为setWindowFlags
的方法。
Here是Qt.WindowFlags类的文档。
Here是所有标志的引用。寻找Qt.WindowMaximizeButtonHint
通常,您似乎需要找到一种方法来启用Qt.CustomizeWindowHint
标志并禁用Qt.WindowMaximizeButtonHint
标志。无论哪种方式,除了setFixedSize
之外,你可能还想要这个,所以这是一个好的开始。
编辑:
像
这样的东西win.setWindowFlags(win.windowFlags() | QtCore.Qt.CustomizeWindowHint)
win.setWindowFlags(win.windowFlags() & ~QtCore.Qt.WindowMaximizeButtonHint)
假设你的导入是这样的
from PyQt4 import QtCore
这会打开CustomizeWindowHint
标志并关闭WindowMaximizeButtonHint
标志,我希望如此。让我知道这是否有效。
编辑:
正如OP所发现的,他唯一需要的结果是:
win.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)
但要注意,因为这也会删除关闭按钮并可能弄乱其他窗口标记。
答案 1 :(得分:3)
这非常有效:
MainWindow.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint)
答案 2 :(得分:0)
您可以使用相同的值设置maximumSize和minimumSize,它将获得最大化按钮
答案 3 :(得分:0)
这对我有帮助:
Form.setMaximumSize(QtCore.QSize(width, height))
它将在您的课堂上出现
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(328, 212)
Form.setMaximumSize(QtCore.QSize(352, 189))