我在单击一个按钮时调整框架大小有问题。我有一个空白窗口,在我的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_())
答案 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_())