- 編程改變生活:用PySide6/PyQt6創建GUI程序(進階篇·微課視頻版)
- 邢世通編著
- 1585字
- 2024-12-31 19:11:33
1.2 表格控件QTableWidget及其項QTableWidgetItem
在PySide6中,使用QTableWidget類表示表格控件,表格控件由多行多列組成,并且含有行表頭和列表頭。表格控件的每個單元格稱為項,使用QTableWidgetItem表示表格控件的項。
1.2.1 表格控件QTableWidget
在PySide6中,使用QTableWidget類創建表格控件。QTableWidget類是QTableView類的子類,位于PySide6的QtWidgets子模塊下,其繼承關系如圖1-1所示。QTableWidget類的構造函數如下:
QTableWidget(parent:QWidget=None) QTableWidget(rows:int,columns:int,parent:QWidget=None)
其中,parent表示父窗口或父控件;rows表示行的數量;columns表示列的數量。
QTableWidget類的常用方法見表1-5。
表1-5 QTableWidget類的常用方法

續表

【實例1-5】 創建一個窗口,該窗口包含一個表格控件。設置表格控件的表頭,并添加兩行數據,代碼如下:

運行結果如圖1-14所示。

圖1-14 代碼demo5.py的運行結果
在PySide6中,可以使用Qt Designer在窗口中創建表格控件。
【實例1-6】 使用Qt Designer設計一個包含表格控件的窗口,向表格控件中添加3行數據。操作步驟如下:
(1)打開Qt Designer軟件,創建一個Widget類型的窗口,如圖1-15所示。
(2)將工具箱中的TableWidget控件拖曳到主窗口,如圖1-16所示。
(3)選中主窗口上的TableWidget控件,右擊,在彈出的菜單欄中選擇“編輯項目”,此時會彈出一個“編輯表格窗口部件”對話框,如圖1-17和圖1-18所示。

圖1-15 創建的窗口

圖1-16 拖曳TableWidget控件

圖1-17 右擊后彈出的菜單
(4)在“編輯表格窗口部件”對話框的“列”選項卡中,單擊左下角的加號圖標可以為表格控件添加列,單擊左下角的減號圖標可以刪除當前列。依次添加5列表頭,如圖1-19所示。

圖1-18 “編輯表格窗口部件”對話框

圖1-19 為表格控件添加表頭
(5)在“編輯表格窗口部件”對話框的行選項卡中,單擊左下角的加號圖標可以為表格控件添加行,單擊左下角的減號圖標可以刪除當前行。依次添加3行,如圖1-20所示。

圖1-20 為表格控件添加行
(6)在“編輯表格窗口部件”對話框中,單擊“確定”按鈕,可查看已經添加行和列的表格控件,如圖1-21所示。
(7)再次打開“編輯表格窗口部件”對話框,然后在項目選項卡下依次添加3行數據,添加完數據后,單擊“確定”按鈕,如圖1-22和圖1-23所示。

圖1-21 已經添加行和列的表格控件

圖1-22 表格控件的3行數據

圖1-23 添加數據后的主窗口
(8)將主窗口的標題修改為QTableWidget,將主窗口的布局設置為水平布局,然后將設計的窗口文件命名為demo6.ui,并保存在D盤的Chapter1文件夾下,在Windows命令行窗口將demo6.ui文件轉換為demo6.py,操作過程如圖1-24所示。

圖1-24 將demo6.ui文件轉換為demo6.py
(9)編寫業務邏輯代碼,代碼如下:

運行結果如圖1-25所示。

圖1-25 代碼demo6_main.py的運行結果
在PySide6中,QTableWidget類的信號見表1-6。
表1-6 QTableWidget類的信號

1.2.2 QTableWidgetItem類
在PySide6中,使用QTableWidgetItem類創建表格控件的表格項。QTableWidgetItem類的構造函數如下:
QTableWidgetItem(type=QTableWidgetItem.Type) QTableWidgetItem(str,type=QTableWidgetItem.Type) QTableWidgetItem(QIcon,str,type=QTableWidgetItem.Type)
其中,type的取值為QTableWidgetItem.Type(默認值,值為1)或QTableWidgetItem.UserType(值為1000),QTableWidgetItem.UserType也是用戶自定義類型的最小值;str表示表格項的文本;QIcon表示表格項的圖標。
QTableWidgetItem類的常用方法見表1-7。
表1-7 QTableWidgetItem類的常用方法

【實例1-7】 創建一個窗口,該窗口包含一個表格控件、5個按鈕控件。這5個按鈕分別實現添加列、刪除列、添加行、刪除行、全選含有文本的表格項的功能,代碼如下:


運行結果如圖1-26所示。

圖1-26 代碼demo7.py的運行結果
1.2.3 使用表格控件處理CSV文件
在PySide6中,可以使用表格控件(QTableWidget)處理CSV文件,不過這需要應用Python內置模塊CSV。如果讀者不了解CSV模塊,則可以查看《編程改變生活——用Python提升你的能力(進階篇·微課視頻版)》的第2章內容。
【實例1-8】 創建一個窗口,該窗口包含一個表格控件、兩個按壓按鈕。這兩個按鈕分別實現打開CSV文件、保存CSV文件的功能,代碼如下:



運行結果如圖1-27所示。

圖1-27 代碼demo8.py的運行結果
注意:中文的編碼方式主要有GBK和UTF-8,根據文件的編碼方式,需要設置對應的編碼方式才能打開包含中文的CSV文件。
1.2.4 使用表格控件處理Excel文件
在PySide6中,可以使用表格控件(QTableWidget)處理Excel文件(擴展名為.xlsx的文件),不過這需要應用Python第三方模塊openpyxl。如果讀者不了解openpyxl模塊,則可以查看《編程改變生活——用Python提升你的能力(進階篇·微課視頻版)》的第1章內容。
【實例1-9】 創建一個窗口,該窗口包含一個表格控件、兩個按壓按鈕。這兩個按鈕分別實現打開Excel文件、保存Excel文件的功能,代碼如下:


運行結果如圖1-28所示。

圖1-28 代碼demo9.py的運行結果
- Java程序設計實戰教程
- Learn Type:Driven Development
- Visual C++串口通信開發入門與編程實踐
- MongoDB for Java Developers
- Vue.js快跑:構建觸手可及的高性能Web應用
- C語言程序設計基礎與實驗指導
- C/C++常用算法手冊(第3版)
- Learning AndEngine
- Windows Server 2016 Automation with PowerShell Cookbook(Second Edition)
- PySpark Cookbook
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- C語言程序設計
- 區塊鏈項目開發指南
- Scala編程實戰
- Python網絡爬蟲實例教程(視頻講解版)