how to disable the window maximize icon using PyQt4?

后端 未结 4 1754
自闭症患者
自闭症患者 2021-02-06 01:18

I would like to know how to disable the window Maximise button in pyqt4. I am at present using QWidget.setFixedSize (self, QSize) to prevent user window resizing, however the ma

相关标签:
4条回答
  • 2021-02-06 01:42

    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))
    
    0 讨论(0)
  • 2021-02-06 01:47

    you could set the maximumSize and minimumSize with the same values, it'll get to dissapear maximise button

    0 讨论(0)
  • 2021-02-06 01:51

    Haven't worked with it but research seems to point to messing with the window flags.

    QWidget has a method called setWindowFlags.

    Here is the doc for the Qt.WindowFlags class.

    Here is a reference for all of the flags. Look for Qt.WindowMaximizeButtonHint

    In general it seems like you need to find a way to enable the Qt.CustomizeWindowHint flag and disable the Qt.WindowMaximizeButtonHint flag. Either way, you probably want this in addition to setFixedSize so that's a good start.

    Edit:

    Something like

    win.setWindowFlags(win.windowFlags() | QtCore.Qt.CustomizeWindowHint)
    win.setWindowFlags(win.windowFlags() & ~QtCore.Qt.WindowMaximizeButtonHint)
    

    Assuming your import is something like this

    from PyQt4 import QtCore
    

    This would turn on the CustomizeWindowHint flag and turn off the WindowMaximizeButtonHint flag, I hope. Let me know if this works at all.

    Edit:

    As discovered by OP, the only call necessary for his desired outcome:

    win.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)
    

    but beware, since this will also remove the close button and potentially mess with other window flags.

    0 讨论(0)
  • 2021-02-06 01:55

    This works perfectly:

    MainWindow.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint)
    
    0 讨论(0)
提交回复
热议问题