PyQt - 切换框架调整大小按钮

时间:2017-02-12 18:40:10

标签: python pyqt

我在单击一个按钮时调整框架大小有问题。我有一个空白窗口,在我的ui文件中有一个名为pushButton的按钮。我希望无论何时按下此按钮,都会更改MainWindow的尺寸,但调整大小只会发生一次。原始尺寸为640 x 480。

我在run_resize函数中做错了什么?谢谢!

代码如下。

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType

qtCreatorFile = 'my_gui.ui'
Ui_MainWindow, QtBaseClass = loadUiType(qtCreatorFile)

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)

        self.setupUi(self)
        self.setFixedSize(self.size())

        self.frame = QFrame()

        self.pushButton.clicked.connect(self.run_resize)

    def run_resize(self):
        if self.frame.height() == 480:
            self.setMinimumSize(640, 150)
            self.resize(640, 150)
        else:
            self.setMinimumSize(640, 480)
            self.resize(640, 480)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = main_window()
    w.show()
    sys.exit(app.exec_())

1 个答案:

答案 0 :(得分:2)

您必须检查QMainWindow上的条件,这是一个有效的例子:

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType

qtCreatorFile = 'my_gui.ui'
Ui_MainWindow, QtBaseClass = loadUiType(qtCreatorFile)

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)

        self.setupUi(self)
        self.setFixedSize(self.size())

        self.pushButton.clicked.connect(self.run_resize)

    def run_resize(self):
        if self.height() == 480:
            self.setMinimumSize(640, 150)
            self.resize(640, 150)
        else:
            self.setMinimumSize(640, 480)
            self.resize(640, 480)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())