Python個(gè)人學(xué)習(xí)筆記 PyQt5——控件
顯示控件
????標(biāo)簽
????液晶數(shù)字
輸入控件
????單行文本框
????多行文本框
????整數(shù)數(shù)字選擇
????小數(shù)數(shù)字選擇
????下拉組合框
????字體組合框
????時(shí)間????日期????日期/時(shí)間
按鈕控件
????按鈕
????工具按鈕
????命令鏈接按鈕
????單選按鈕
????復(fù)選框
項(xiàng)目控件
????列表
容器
????分組框
????選項(xiàng)卡
????工具盒

顯示控件(Display Widgets)
標(biāo)簽(Lable)
顯示用戶(hù)無(wú)法編輯的文本。
屬性及對(duì)應(yīng)Python函數(shù)/方法
① text
設(shè)置文本。
點(diǎn)擊text屬性的...可以詳細(xì)設(shè)置格式。
② alignment
對(duì)齊方式。
AlignLeft:左對(duì)齊。
AlignJustify:雙端對(duì)齊。類(lèi)似與AlignLeft,但會(huì)盡量保持每行的長(zhǎng)度一致。
參數(shù)為對(duì)齊方式標(biāo)志。水平對(duì)齊方式標(biāo)志與垂直對(duì)齊方式標(biāo)志以 | 或運(yùn)算符連接。
③ wordWrap
換行顯示。
正常情況下不會(huì)換行顯示,即每行超出控件寬度后只會(huì)顯示后部分文本。
④ openExternalLinks
允許訪(fǎng)問(wèn)超鏈接。
在文本中使用HTML的<a>標(biāo)簽對(duì)可添加超鏈接。勾選openExternalLinks后才能訪(fǎng)問(wèn)超鏈接。
⑤ pixmap
插入圖片。
圖片為文本的一部分。
▲styleSheet中的添加背景圖表示圖片作為控件的背景,與文本無(wú)關(guān)。

液晶數(shù)字(LCD Number)
用于顯示液晶數(shù)字。
屬性
①?digitCount
?最大顯示位數(shù)。
② mode
設(shè)置進(jìn)制。
③?segmentStyle
顯示樣式。
④ setProperty()
設(shè)置顯示值。
第一個(gè)參數(shù)為'value'或'intValue‘,表示顯示值或整數(shù)值。
第二個(gè)參數(shù)為值。

輸入控件(Input Widgets)
單行文本框(Line Edit)
只能輸入單行文本。
屬性及對(duì)應(yīng)Python函數(shù)/方法
① inputMask
用于指定文本框中輸入的格式。
定義一個(gè)模板,限制用戶(hù)輸入的內(nèi)容必須符合指定的格式,使用不同的占位符字符來(lái)表示各種不同類(lèi)型的字符。(類(lèi)似于正則表達(dá)式)
0: 一個(gè)數(shù)字字符(0-9)。
9: 一個(gè)可選的數(shù)字字符(0-9)。
A: 一個(gè)字母字符(A-Z,a-z)。
a: 一個(gè)可選的字母字符(A-Z,a-z)。
#: 一個(gè)數(shù)字或一個(gè)加減符號(hào)。
H: 一個(gè)十六進(jìn)制字符(0-F)。
h: 一個(gè)可選的十六進(jìn)制字符(0-F)。
N: 一個(gè)字母或一個(gè)數(shù)字字符。
X: 任何字符。
※可選表示可以在該位置輸入一個(gè)數(shù)字字符,也可以不輸入任何內(nèi)容。如果未在該位置輸入數(shù)字字符,該位置將保持為空。
②?text
?設(shè)置文本。
③?maxLength
設(shè)置文本最大長(zhǎng)度。
④ frame
邊框。
⑤ echoMode
設(shè)置字符顯示模式。
Normal:正常顯示。
NoEcho:不顯示。(但是可輸入)
Password:顯示密碼掩碼字符。
PasswordEchoOnEdit:編輯時(shí)正常顯示,未編輯時(shí)顯示密碼掩碼字符。
⑥?readOnly
只讀模式。
⑦ placeholderText
文本框中沒(méi)有輸入內(nèi)容時(shí)顯示的灰色提示文本。
⑧?setValidator()
設(shè)置輸入驗(yàn)證器。
輸入驗(yàn)證器是一種機(jī)制,用于限制用戶(hù)在文本框中輸入的內(nèi)容,以確保用戶(hù)輸入的數(shù)據(jù)符合特定的格式、范圍或其他條件。
QtGui.QIntValidator(m,n):限制輸入[m,n]間的整數(shù)。
QtGui.QRegExpValidator():限制輸入的正則表達(dá)式。

多行文本框(Text Edit)
支持顯示多行文本以及HTML代碼。
雙擊文本框即可編輯內(nèi)容。
自行比對(duì)導(dǎo)出的函數(shù)中的具體作用。

整數(shù)數(shù)字選擇(Spin Box)
可直接輸入值,也可以用箭頭選擇值。
常用屬性
① suffix / prefix
顯示在值后/前的文本。
②?singleStep
用箭頭選擇時(shí)的步長(zhǎng)。
③ value
默認(rèn)值。

小數(shù)數(shù)字選擇(Double Spin Box)
比Spin Box多一個(gè)Decimal屬性,用于設(shè)置小數(shù)精度。

下拉組合框(Combo Box)
常用方法
① addItem() / addItems()
添加一個(gè)選項(xiàng)/從列表批量添加選項(xiàng)
② currentText() / currentIndex()
獲取選中項(xiàng)的文本/索引
③ itemText(index)
獲取指定索引項(xiàng)的文本
④ setItemText(index,text)
設(shè)置指定索引項(xiàng)為指定文本
⑤ count()
獲取選項(xiàng)總數(shù)
常用信號(hào)
① activated
選中一項(xiàng)時(shí)發(fā)射信號(hào)。
② currentIndexChanged
選項(xiàng)改變時(shí)發(fā)射信號(hào)。

字體組合框(Font Combo Box)
用于選擇字體。
屬性fontFilters
用于限制用戶(hù)在字體選擇框中看到的字體列表。
QFontComboBox.AllFonts:顯示所有可用字體(默認(rèn)值)。
QFontComboBox.ScalableFonts:顯示可縮放的字體。
QFontComboBox.NonScalableFonts:顯示不可縮放的字體。
QFontComboBox.MonospacedFonts:顯示等寬字體。
QFontComboBox.ProportionalFonts:顯示比例字體。
信號(hào)currentIndexChanged
選擇的字體改變時(shí)發(fā)射。
函數(shù)setFont()
更改文本的字體。


時(shí)間(Time Edit)
日期(Date Edit)
日期/時(shí)間(Date/Time Edit)
用于輸入時(shí)間。
屬性
① displayFormat
設(shè)置時(shí)間格式。
② calendarPopup
設(shè)置是否可彈出日歷控件。
③ timeSpec
設(shè)置時(shí)間標(biāo)準(zhǔn)。
④ accelerated
開(kāi)啟后,連續(xù)按上或下選擇時(shí)間時(shí)將加速。

按鈕控件(Buttons)
按鈕(Push Button)
常用屬性
① enabled
是否可用。
② icon
設(shè)置圖標(biāo)。
③ shortcut
設(shè)置快捷鍵。
點(diǎn)擊后shortcut屬性后按鍵即可設(shè)置,可以用熱鍵。
④ checkable
是否可被選中。
相當(dāng)于按壓式開(kāi)關(guān)和撥動(dòng)式開(kāi)關(guān)的區(qū)別。
⑤ setMenu()
設(shè)置下拉菜單。

工具按鈕(Tool Button)
與Push Button類(lèi)似??梢栽O(shè)置箭頭,但箭頭不能和圖標(biāo)共存。
如果設(shè)置了下拉菜單卻無(wú)法顯示,可以更改popupMode屬性。

命令鏈接按鈕(Command Link Button)
與Push Button類(lèi)似。用于顯示一個(gè)帶有標(biāo)題、描述和圖標(biāo)的命令鏈接,可以更好地提示用戶(hù)進(jìn)行某種操作。
例如:
① 打開(kāi)網(wǎng)站
② 打開(kāi)文件
不一定是命令鏈接按鈕才能這么做,什么按鈕都可以自定義槽函數(shù)。

單選按鈕(Radio Button)
信號(hào)clicked與toggled
clicked:點(diǎn)擊就會(huì)發(fā)射信號(hào)。
toggled:只有狀態(tài)改變才會(huì)發(fā)射信號(hào)。
多組互斥單選按鈕
可以創(chuàng)建多個(gè)QButtonGroup實(shí)例來(lái)管理不同的單選按鈕組。


復(fù)選框(Check Box)
屬性tristate
勾選后可以開(kāi)啟第三種狀態(tài):半選中狀態(tài)。
例如:對(duì)于一個(gè)文件夾,選擇其中所有文件后,文件夾顯示選中狀態(tài);選擇部分文件則顯示半選中狀態(tài)。


項(xiàng)目控件(Item Widgets)
列表(List Widget)
常用屬性
①?selectionMode
用于設(shè)置列表中項(xiàng)目的選擇模式。
QListWidget.NoSelection:不允許選擇任何項(xiàng)目。
QListWidget.SingleSelection:允許選擇單個(gè)項(xiàng)目。
QListWidget.MultiSelection:允許選擇多個(gè)項(xiàng)目,按住 Ctrl 鍵可以進(jìn)行多選。
QListWidget.ExtendedSelection:允許選擇多個(gè)項(xiàng)目,按住 Shift 鍵可以進(jìn)行連續(xù)選擇。
QListWidget.ContiguousSelection:允許選擇多個(gè)項(xiàng)目,按住 Shift 鍵可以進(jìn)行連續(xù)選擇,但不支持按住 Ctrl 鍵進(jìn)行非連續(xù)選擇。
②?selectionBehavior
用于設(shè)置列表中項(xiàng)目的選擇行為。
QListWidget.SelectItems:點(diǎn)擊項(xiàng)目時(shí)選擇該項(xiàng)目。
QListWidget.SelectColumns:點(diǎn)擊項(xiàng)目所在的整列時(shí)選擇該列。
QListWidget.SelectRows:點(diǎn)擊項(xiàng)目所在的整行時(shí)選擇該行。
※ List Widget中只有一列,SelectRows沒(méi)什么意義。在Tree Widget中可以有多列。
③ viewMode
ListMode:以列表形式顯示。
IconMode:以圖標(biāo)形式顯示。
?常用信號(hào)
① currentItemChanged
② itemClicked

容器(Containers)
分組框(Group Box)
用于將其他相關(guān)部件組合在一起,形成一個(gè)邏輯上的組。
創(chuàng)建一個(gè)可選的單獨(dú)區(qū)域,將相關(guān)的控件進(jìn)行分組,從而提高界面的可讀性和可用性。
屬性flat
設(shè)置邊框。

選項(xiàng)卡(Tab Widget)
用于分組。右鍵可以新增選項(xiàng)。
屬性
①?elideMode
當(dāng)選項(xiàng)卡的文本長(zhǎng)度溢出時(shí),省略號(hào)的位置。
② documentMode
設(shè)置邊框。
③ tabsClosable
設(shè)置可關(guān)閉選項(xiàng)卡。
▲開(kāi)啟 tabsClosable 選項(xiàng)只是多了個(gè)關(guān)閉按鈕,并沒(méi)有實(shí)現(xiàn)關(guān)閉的功能,需要手動(dòng)添加連接來(lái)實(shí)現(xiàn)。
▲關(guān)閉的選項(xiàng)卡不支持復(fù)原!

工具盒(Tool Box)
創(chuàng)建多個(gè)選項(xiàng)卡,每個(gè)選項(xiàng)卡通常代表一個(gè)功能模塊或一個(gè)獨(dú)立的選項(xiàng)??梢酝ㄟ^(guò)點(diǎn)擊選項(xiàng)卡來(lái)切換顯示不同的內(nèi)容,而每個(gè)選項(xiàng)卡通常包含一個(gè)相關(guān)的小部件或子界面。

仿制waifu2x界面
原界面:

仿制:

當(dāng)然有些BUG(((
源代碼: