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

时间:2013-09-03 19:32:47

标签: python resize window pyqt pyqt4

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

4 个答案:

答案 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))