- 編程改變生活:用PySide6/PyQt6創(chuàng)建GUI程序(進(jìn)階篇·微課視頻版)
- 邢世通編著
- 1187字
- 2024-12-31 19:11:29
1.1 列表控件QListWidget及其項(xiàng)QListWidgetItem
在PySide6中,使用QListWidget類表示列表控件,列表控件由一行多列構(gòu)成,每行稱為項(xiàng)。可以在列表控件中添加、刪除列表中的項(xiàng)。項(xiàng)(Item)為列表控件的基本單位。使用QListWidgetItem類表示列表控件的項(xiàng)。
1.1.1 列表控件QListWidget
在PySide6中,使用QListWidget類創(chuàng)建列表控件。QListWiget類是QListView類的子類,位于PySide6的QWidgets子模塊下。QListWidget類的構(gòu)造函數(shù)如下:
QListWidget(parent:QWidget=None)
其中,parent表示父窗口或父控件。
QListWidget類的常用方法見(jiàn)表1-1。
表1-1 QListWidget類的常用方法

續(xù)表

在表1-1中,Qt.MatchFlags的枚舉值為Qt.MatchExactly、Qt.MatchFixedString、Qt.MatchContains、Qt.MatchStartsWith、Qt.MatchEndsWith、Qt.MatchCaseSensitive、Qt.MatchRegularExpression、Qt.MatchWildcard、Qt.MatchWrap、Qt.MatchRecursive。
Qt.DropAction的枚舉值為Qt.CopyAction(復(fù)制)、Qt.MoveAction(移動(dòng))、Qt.LinkAction(鏈接)、Qt.IgnoreAction(什么都不做)、Qt.TargetMoveAction(目標(biāo)對(duì)象接管)。
【實(shí)例1-1】 創(chuàng)建一個(gè)窗口,該窗口包含一個(gè)列表控件。要求在列表控件中顯示項(xiàng),設(shè)置背景色,代碼如下:

運(yùn)行結(jié)果如圖1-2所示。

圖1-2 代碼demo1.py的運(yùn)行結(jié)果
在PySide6中,可以使用Qt Designer在窗口中創(chuàng)建列表控件。
【實(shí)例1-2】 使用Qt Designer設(shè)計(jì)一個(gè)包含列表控件的窗口,向列表控件中添加比較流行的計(jì)算機(jī)編程語(yǔ)言。操作步驟如下:
(1)打開(kāi)Qt Designer軟件,創(chuàng)建一個(gè)Widget類型的窗口,如圖1-3所示。

圖1-3 創(chuàng)建的窗口
(2)將工具箱中的List Widget控件拖曳到主窗口,如圖1-4所示。

圖1-4 拖曳List Widget控件
(3)選中主窗口上的List Widget控件,右擊,在彈出的菜單欄中選擇“編輯項(xiàng)目”,此時(shí)會(huì)彈出一個(gè)“編輯列表窗口部件”對(duì)話框,如圖1-5和圖1-6所示。

圖1-5 右擊后彈出的菜單
(4)在“編輯列表窗口部件”對(duì)話框中單擊左下角的加號(hào)圖標(biāo)可以為列表控件添加項(xiàng),單擊左下角的減號(hào)圖標(biāo)可以刪除當(dāng)前項(xiàng)。添加完畢后,單擊“確定”按鈕,如圖1-7和圖1-8所示。
(5)將主窗口的布局設(shè)置為水平布局,將列表控件的字體設(shè)置為黑體,將字號(hào)設(shè)置為14,將列表控件的背景色設(shè)置為PaleGreen,如圖1-9所示。
(6)將主窗口的標(biāo)題修改為QListWidget,然后將設(shè)計(jì)的窗口文件命名為demo2.ui,并保存在D盤的Chapter1文件夾下,然后在Windows命令行窗口將demo2.ui文件轉(zhuǎn)換為demo2.py,操作過(guò)程如圖1-10所示。

圖1-6 “編輯列表窗口部件”對(duì)話框

圖1-7 為列表控件添加項(xiàng)

圖1-8 添加項(xiàng)的列表控件

圖1-9 修改屬性后的主窗口

圖1-10 將demo2.ui文件轉(zhuǎn)換為demo2.py
(7)編寫業(yè)務(wù)邏輯代碼,代碼如下:

運(yùn)行結(jié)果如圖1-11所示。

圖1-11 代碼demo2_main.py的運(yùn)行結(jié)果
在PySide6中,QListWidget類的信號(hào)見(jiàn)表1-2。
表1-2 QListWidget類的信號(hào)

1.1.2 QListWidgetItem類
在PySide6中,使用QListWidgetItem類表示列表控件中的項(xiàng)。QListWidgetItem類位于PySide6的QtWidgets子模塊下,其構(gòu)造函數(shù)如下:
QListWidgetItem(listview:QListWidget=None,type:int=QListWidgetItem.Type) QListWidgetItem(text:str,listview:QListWidget=None,type:int=QListWidgetItem.Type) QListWidgetItem(icon:Union[QIcon,QPixmap],text:str,listview:QListWidget=None,type:int= QListWidgetItem.Type)
其中,listview表示列表控件;type的取值為QListWidgetItem.Type(默認(rèn)值,值為1)或QListWidgetItem.UserType(值為1000),QListWidgetItem.UserType也是用戶自定義類型的最小值;text表示項(xiàng)的文本;icon表示項(xiàng)的圖標(biāo)。
QListWidgetItem類的常用方法見(jiàn)表1-3。
表1-3 QListWidgetItem類的常用方法

在PySide6中,Qt.ItemFlags的枚舉值見(jiàn)表1-4。
表1-4 Qt.ItemFlags的枚舉值

【實(shí)例1-3】 創(chuàng)建一個(gè)窗口,該窗口包含一個(gè)列表控件、4個(gè)按鈕控件。這4個(gè)按鈕分別實(shí)現(xiàn)添加項(xiàng)、編輯項(xiàng)、刪除項(xiàng)、排序的作用,代碼如下:



運(yùn)行結(jié)果如圖1-12所示。

圖1-12 代碼demo3.py的運(yùn)行結(jié)果
1.1.3 典型應(yīng)用
【實(shí)例1-4】 創(chuàng)建一個(gè)窗口,該窗口包含一個(gè)列表控件。在列表控件中右擊會(huì)彈出上下文菜單,菜單命令包含添加、編輯、刪除、全選、反選、全不選,代碼如下:



運(yùn)行結(jié)果如圖1-13所示。

圖1-13 代碼demo4.py的運(yùn)行結(jié)果
- Go Web編程
- C#應(yīng)用程序設(shè)計(jì)教程
- 微信小程序全棧開(kāi)發(fā)技術(shù)與實(shí)戰(zhàn)(微課版)
- AIRIOT物聯(lián)網(wǎng)平臺(tái)開(kāi)發(fā)框架應(yīng)用與實(shí)戰(zhàn)
- INSTANT Adobe Edge Inspect Starter
- JavaScript程序設(shè)計(jì):基礎(chǔ)·PHP·XML
- Python從入門到精通(第3版)
- Advanced UFT 12 for Test Engineers Cookbook
- scikit-learn Cookbook(Second Edition)
- PHP項(xiàng)目開(kāi)發(fā)全程實(shí)錄(第4版)
- JavaEE架構(gòu)與程序設(shè)計(jì)
- 城市信息模型平臺(tái)頂層設(shè)計(jì)與實(shí)踐
- Selenium自動(dòng)化測(cè)試實(shí)戰(zhàn):基于Python
- Instant PhoneGap
- HTML5與CSS3權(quán)威指南(第2版·下冊(cè))