PyQt5(2)——調整佈局(佈局管理器)第一個程式
我們拖拽一個UI檔案,轉為PY檔案後生成一個類Ui_MainWindow
此時,我們新建一個檔案,用來控制業務邏輯(繼承介面中的類),跟介面分開,這樣我們就完成了介面和邏輯相分離(這段程式碼使用率基本100%,牢牢記住)。
1 __author__ = "WSX" 2 import sys 3 from PyQt5.QtWidgets import QApplication, QMainWindow 4 from first import * #匯入了Ui_MainWindow類 5 6 class MyMainWindows(QMainWindow, Ui_MainWindow): #新建一個類 Ui_MainWindow 為first中的一個類 7 def __init__(self,parent=None): 8 super(MyMainWindows,self).__init__(parent) 9 self.setupUi(self) 10 11 if __name__ == "__main__": 12 #所有的PyQt5應用必須建立一個應用(Application)物件。 13 app = QApplication(sys.argv) #QApplication類管理GUI程式的控制流和主要設定,是基於QWidget的,為此特化了QGuiApplication的一些功能,處理QWidget特有的初始化和結束收尾工作。14 mywin = MyMainWindows() 15 mywin.show() 16 sys.exit(app.exec_())
右擊執行,見效果
佈局管理器用來管理空間之間的排版和佈局(很重要,這個必須理解):
(從上往下依次為:垂直、水平、柵格、表單佈局)
1. 絕對佈局
Geometry 屬性用來控制佈局,它在pyqt中主要用來控制 絕對座標和自身大小。
1 self.pushButton = QtWidgets.QPushButton(self.centralwidget)2 self.pushButton.setGeometry(QtCore.QRect(170, 170, 75, 23)) 3 self.pushButton.setObjectName("pushButton")
這段程式碼主要設定上面所說的屬性
2. 使用佈局管理器佈局
為什麼要用佈局管理器,我們覺得自己設計的介面不美觀時,每次都需要手動來調整控制元件的位置,十分的麻煩。並且佈局管理器會根據視窗的縮放來動態改變空間大小。
因此學好佈局管理器十分重要!!!!!!
① 垂直佈局 大家可以自己拖拽四種佈局方式來觀察程式碼變化。
② 柵格佈局
③ 水平佈局(介紹一下下)
這是我們水平佈局的四個控制元件
但是我們想讓他們中間留一點空隙。。。 挨的太近了。這時就需要這個控制元件了。哈哈哈
(Vertical spacer表示倆佈局管理器 或者按鈕 水平 分開一點 , )
(Horizontal spacer 表示按鈕和佈局管理器分開一點)
(Horizontal Line 表示分開不同的類) 注: 這些在執行時不會顯出來。
3.minimumsize 和 maixmumsize(設定控制元件在佈局管理器中的最大個最小尺寸),簡單來說類似於 css 調整介面大小時,不會因為介面很小變為特別小。
4.sizepolicy
sizeHint(控制元件被期望的尺寸) 和 minisizeHint(控制元件被壓縮最小尺寸) 需要知道
sizepolicy的作用是,如果佈局管理器滿足不了我們,我們就需要sizepolicy進行微調。
解釋一下這個吧。
Fixed: 代表控制元件具有sizeHint 所提示的尺寸並且不改變
還可以設定 Tab 快捷鍵 控制元件切換的順序(獲得焦點)