官术网_书友最值得收藏!

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的運行結果

主站蜘蛛池模板: 资阳市| 清河县| 桃园市| 宕昌县| 巩留县| 太白县| 马关县| 三穗县| 丁青县| 泽州县| 桐乡市| 左云县| 新民市| 鄂尔多斯市| 福建省| 木兰县| 崇文区| 舟曲县| 神农架林区| 贡觉县| 武义县| 宜章县| 邮箱| 阳信县| 北票市| 武宁县| 无极县| 读书| 石柱| 泰安市| 佛教| 宝应县| 金川县| 涿州市| 丹东市| 五大连池市| 安塞县| 武穴市| 科尔| 苍南县| 延吉市|