【问题标题】:how to disable the window maximize icon using PyQt4?如何使用 PyQt4 禁用窗口最大化图标?
【发布时间】:2013-09-07 03:33:41
【问题描述】:

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

【问题讨论】:

    标签: python resize window pyqt pyqt4


    【解决方案1】:

    尚未使用它,但研究似乎指向弄乱窗口标志。

    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)
    

    但要小心,因为这也会删除关闭按钮并可能与其他窗口标志混淆。

    【讨论】:

    • 感谢 Brian,您的研究为我指明了正确的方向。最后它比你想象的要简单。需要调用 win.setWindowFlags 但是 win.setWindowFlags(Qt.WindowMinimizeButtonHint) 完成了这项工作。似乎对 WindowMinimizeButtonHint 的调用将禁用窗口最大化按钮;同样调用 WindowMaximizeButton 提示将禁用最小化按钮
    • @jim 很高兴它有帮助!很高兴知道我是否决定将来开始使用 pyqt。
    • 请注意,原来的答案是最好的,因为 OP 选择的那个也删除了关闭按钮并可能更改其他窗口标志。
    【解决方案2】:

    这很好用:

    MainWindow.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint)
    

    【讨论】:

    • 也适用于 PyQt5。
    【解决方案3】:

    您可以将 maximumSize 和 minimumSize 设置为相同的值,它会消失最大化按钮

    【讨论】:

      【解决方案4】:

      这对我有帮助:

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

      【讨论】:

        【解决方案5】:

        这适用于 PyQT6:

        MainWindow.setWindowFlags(QtCore.Qt.WindowType.CustomizeWindowHint | QtCore.Qt.WindowType.WindowCloseButtonHint | QtCore.Qt.WindowType.WindowMinimizeButtonHint)
        

        希望有用!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-04-11
          • 1970-01-01
          • 2015-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-19
          相关资源
          最近更新 更多