我想知道如何禁用pyqt4中的窗口最大化按钮。我目前正在使用 QWidget.setFixedSize (self, QSize) 来防止用户窗口调整大小,但是最大化按钮仍然处于启用状态,并且当按下时会导致应用程序移动到屏幕的左上角。我基本上想复制 Windows 计算器应用程序的行为,其中最大化图标是灰色的。有谁知道如何使用 PyQt4 实现这一目标?
问问题
19354 次
5 回答
16
没有使用它,但研究似乎指向弄乱窗口标志。
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)
假设您的导入是这样的
from PyQt4 import QtCore
我希望这会打开CustomizeWindowHint
旗帜并关闭WindowMaximizeButtonHint
旗帜。让我知道这是否有效。
编辑:
正如 OP 所发现的,他想要的结果唯一需要的调用:
win.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)
但要小心,因为这也会删除关闭按钮并可能与其他窗口标志混淆。
于 2013-09-03T19:49:10.773 回答
14
这完美地工作:
MainWindow.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint)
于 2016-01-22T16:04:10.323 回答
1
您可以将 maximumSize 和 minimumSize 设置为相同的值,它将消失最大化按钮
于 2015-03-13T21:44:36.890 回答
1
This helped me:
Form.setMaximumSize(QtCore.QSize(width, height))
It would go here in your class:
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(328, 212)
Form.setMaximumSize(QtCore.QSize(352, 189))
于 2020-08-29T12:18:28.160 回答
0
这适用于 PyQT6:
MainWindow.setWindowFlags(QtCore.Qt.WindowType.CustomizeWindowHint | QtCore.Qt.WindowType.WindowCloseButtonHint | QtCore.Qt.WindowType.WindowMinimizeButtonHint)
希望它有用!
于 2021-10-03T21:20:22.420 回答