У меня возникла проблема с изменением размера кадра на основе нажатия одной кнопки. У меня есть пустое окно с одной кнопкой, которая называется pushButton
в моем файле ui. Я хотел бы, чтобы всякий раз, когда эта кнопка нажата, размеры MainWindow изменяются, однако изменение размера происходит только один раз. Исходные размеры 640 на 480.PyQt - Toggle Frame Resize Push Button
Что я делаю неправильно в функции 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_())
ваше состояние на 'frame' объекта и установить размер вашего' QMainWindow'. Попробуйте заменить 'if self.frame.height() == 480:' by 'if self.height() == 480:' – SyedElec
Вау, спасибо! Это было! –
Нет проблем :) Я написал ответ, чтобы он мог помочь другим пользователям. – SyedElec