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

PyQt5(2)——調整布局(布局管理器)第一個程序

nis acer 對象 css port 觀察 bject 進行 為什麽

我們拖拽一個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 快捷鍵 控件切換的順序(獲得焦點)

技術分享圖片

PyQt5(2)——調整布局(布局管理器)第一個程序