2017-02-12 125 views
0

我遇到了基於單擊按鈕調整框架大小的問題。我有一個空白窗口,在我的ui文件中有一個名爲pushButton的按鈕。我希望每當按下這個按鈕時,MainWindow的尺寸都會改變,但是調整隻發生一次。原始尺寸爲640×480。PyQt - 切換框架調整大小按鈕

我在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

你的條件是'frame'對象中,並且設置你的'QMainWindow'的大小。嘗試更換'if self.frame.height()== 480:'by'if self.height()== 480:' – SyedElec

+0

哇,謝謝!這就是它! –

+0

沒問題:)我寫了一個答案,以便它可以幫助其他用戶。 – SyedElec

回答

1

你必須去檢查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_())