表格與樹-QTableWidget基本用法
QTableWidget是Qt程序中常用的顯示數(shù)據(jù)表格的空間,類似于C#中的DataGrid。QTbaleWidget是QTableView的子類,它使用標(biāo)準(zhǔn)的數(shù)據(jù)模型,并且其單元格數(shù)據(jù)是通過QTableWidgetItem對象來實現(xiàn)的。使用QTableWidget時就需要QTableWidgetItem,用來表示表格中的一個單元格,整個表格就是用各個單元格構(gòu)建起來的。
QTableWidget類中的常用方法如下表所示。

編輯規(guī)則的枚舉值類型如下所示。

表格的選擇行為的枚舉值:

單元格文本的水平對齊方式如下:

單元格文本的垂直對齊方式如下表:

實例演示1:基本用法
本實例主要介紹基本表格的用法,在表格控件中顯示的數(shù)據(jù)是可編輯的。在QTableWidget表格中具體單元格就是QTableWidgetItem類。完整代碼如下。
運行程序,顯示效果如下。

代碼分析:
上面這行代碼構(gòu)造了一個QTableWidget對象,并設(shè)置表格為4行3列。
上面這行代碼生成了一個QTableWdigetItem對象,名稱為“張三”。
上面這行代碼將剛生成的具體單元格加載到表格的第0行第0列處。
注意: 在默認(rèn)情況下,表格里面的字符串是可以更改的。
1)設(shè)置表格頭
首先,初始化QTableWidget的實例對象,生成一個4行3列的表格,除了上述方式外,還可以按如下方式定義:
然后,設(shè)置表格的水平表頭標(biāo)簽和垂直表頭標(biāo)簽。
注意:生成表格,初始化行號和列號后,在設(shè)置表格的表頭標(biāo)簽,否則是沒有效果的。
顯示的效果如圖:

2)設(shè)置表格頭為伸縮模式
創(chuàng)建一個4行3列的表格,表格頭信息“姓名”“性別”“體重(kg)”水平放置,不設(shè)置表格的垂直表頭標(biāo)簽,然后使用QTableWidget對象的horizontalHeager()函數(shù)設(shè)置表格為自適應(yīng)的伸縮模式,即可根據(jù)窗口大小來改變網(wǎng)格大小。
運行程序, 將窗體拉長一些,顯示效果如下。

3)將表格變?yōu)榻咕庉?/p>
在默認(rèn)情況下,表格中的字符串是可以更改的,比如雙擊一個單元格,就可以修改原來的內(nèi)容。如果想禁止這種操作,讓表格對用戶是只讀的,則可以編寫如下代碼。
4)設(shè)置表格整行選中
表格默認(rèn)選中的是單個單元格,通過一下的代碼可以設(shè)置成整行選中。
顯示效果:

5)將行和列的寬度、高度設(shè)置為與所顯示內(nèi)容的寬度、高度相匹配。
顯示效果:

6)表格頭的顯示與隱藏
對于水平方向的表頭,采用以下代碼進行隱藏或顯示設(shè)置。
對于垂直方向的表頭,采用以下代碼進行隱藏或者顯示設(shè)置。
將表格頭隱藏起來的效果如圖。

7)在單元格中放置控件
QTableWidget不僅允許往單元格中放置文字,還允許放置控件,通過TableWidget.setCellWidget()來添加PyQt的基本控件。
實例演示2:把一個下拉列表框和一個按鈕加入單元格,并設(shè)置控件與單元格的邊距,如為3像素,代碼如下:
顯示的效果如下圖:

8)在表格中快速定位到指定行
當(dāng)tablewidget表格的行數(shù)很多時,可以通過輸入行號進行直接定位并顯示,比如輸入10,就直接顯示第10行。
實例演示3:快速查找
運行結(jié)果,顯示效果如下圖。
