1. 程式人生 > >PyQt5(2)——調整佈局(佈局管理器)第一個程式

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 快捷鍵 控制元件切換的順序(獲得焦點)