Python個(gè)人學(xué)習(xí)筆記 PyQt5——控件(二)
布局
????垂直布局 /?水平布局
????網(wǎng)格布局
????表單布局
容器
????MDI窗口

布局(Layouts)
垂直布局(Vertical Layout)/?水平布局(Horizontal Layout)
放入垂直 / 水平布局中的控件按垂直分布,一行 / 列只能有一個(gè)控件,并會(huì)根據(jù)數(shù)量自動(dòng)調(diào)節(jié)間距。
屬性 / 方法
① Margin
4個(gè)內(nèi)邊距。
② layoutSpacing
控件之間的間距。
③ layoutStretch
在調(diào)整窗口大小時(shí),用于指定每個(gè)部件的伸縮比例。
參數(shù)是一個(gè)列表,列表長(zhǎng)度為布局中的部件個(gè)數(shù),可為每個(gè)部件分配比例。
④ layoutSizeConstraint
在調(diào)整窗口大小時(shí),用于指定每個(gè)部件的大小。
SetDefaultConstraint / SetNoConstraint:任意大小。
SetFixedSize:固定大小。
SetMinimumSize:控件大小不會(huì)小于最小值。
SetMaximumSize:控件大小不會(huì)大于最大值。
SetMinAndMaxSize:控件大小不會(huì)超出指定范圍。
可對(duì)各個(gè)控件用?setMinimumSize() /?setMaximumSize() 方法來(lái)指定最小值 / 最大值。
⑤?addWidget()
addWidget(a0 ,stretch ,alignment)
向布局中添加控件。
參數(shù):
????a0:控件名。
????stretch:伸縮比。
????alignment:對(duì)齊方式。
⑥ addStretch() /?insertStretch()
添加空白。
addStretch()
參數(shù)為伸縮比,在末尾添加。
insertStretch()
第一個(gè)參數(shù)為插入的位置(索引),第二個(gè)參數(shù)為伸縮比。

網(wǎng)格布局(Grid Layout)
對(duì)于多行多列布局應(yīng)該用網(wǎng)格布局,而不用垂直、水平布局的嵌套。
addWidget(a0 ,row ,column , alignment)
在指定單元格添加控件,可以直接通過(guò)Qt Designer添加。
addWidget(a0 ,row ,column ,rowSpan ,columnSpan ,alignment)
跨行/列添加控件。
row:起始行。
column:起始列。
rowSpan:跨行數(shù)。
columnSpan:跨列數(shù)。

表單布局(Form Layout)
FormLayout 是一種用于創(chuàng)建表單樣式的布局管理器,它可以方便地組織標(biāo)簽和輸入控件。它以一種類似于表單的方式排列控件,其中標(biāo)簽位于左側(cè),輸入控件位于右側(cè)。這種布局適用于表單輸入、設(shè)置面板等場(chǎng)景。
屬性layoutRowWrapPolicy
指定表單布局中行的換行策略。
WrapLongRows:當(dāng)窗口不足以容納所有行時(shí),會(huì)自動(dòng)換行顯示行。
DontWrapRows:輸入控件始終在標(biāo)簽右邊。
WrapAllRows:輸入控件始終在標(biāo)簽下邊。即標(biāo)簽和輸入控件分別獨(dú)占一行。

容器(Containers)
MDI窗口(MDI Area)
用于同時(shí)顯示多個(gè)窗口。

Qt Designer中間可以同時(shí)顯示多個(gè)創(chuàng)建的窗口的灰色區(qū)域,就是一個(gè)MDI窗口。
常用方法
① addSubWindow()
② removeSubWindow()
只能移除QMdiSubWindow對(duì)象。
③ setActiveSubWindow()
激活子窗口。
活動(dòng)子窗口是指當(dāng)前用戶正在操作或具有焦點(diǎn)的子窗口。
④?closeActiveSubWindow()
⑤ subWindowList()
獲取子窗口列表。
⑥?cascadeSubWindows()
級(jí)聯(lián)排列子窗口。
⑦?tileSubWindows()
平鋪排列子窗口。
在MDI窗口內(nèi)新建子窗口

