表格與樹——QTreeView
QTreeWidget
?顧名思義,這是用來展示樹型結(jié)構(gòu)(也就是層次結(jié)構(gòu))的。
Qt中實現(xiàn)樹形結(jié)構(gòu)可以使用QTreeWidget
類,也可以使QTreeView
類。QTreeWidget
繼承自QTreeView
類。這個類需要同另外一個輔助類QTreeWidgetItem
一同使用。
不過,既然是提供方面的封裝類,即便是看上去很復(fù)雜的樹,在使用這個類的時候也是顯得比較簡單的。
當(dāng)不需要使用復(fù)雜的QTreeView
的特性的時候,我們可以直接使用QTreeWidget
代替。
QTreeWidget類中常用的方法如下表所示:

QTreeWidgetItem類中的常用方法如下表:

1、樹形結(jié)構(gòu)的實現(xiàn)
樹形結(jié)構(gòu)時通過QTreeWidget和QTreeWidgetItem類實現(xiàn)的,其中QTreeWidgetItem類實現(xiàn)了節(jié)點的添加。

實例演示1:樹形結(jié)構(gòu)的實現(xiàn)
運行程序,顯示效果如下;

1.1 設(shè)置節(jié)點狀態(tài)
在上面顯示的基礎(chǔ)上,我們設(shè)置下節(jié)點的狀態(tài),也就是設(shè)計節(jié)點是否可被選中,可以使用QTreeWdigetItem的setCheckState()函數(shù)實現(xiàn),添加代碼如下:
顯示效果如下:

1.2 設(shè)置節(jié)點的背景顏色
可以使用QBrush類來設(shè)置節(jié)點的背景顏色,例如設(shè)置根節(jié)點的背景顏色,代碼如下:
顯示效果如下:

2、給節(jié)點添加響應(yīng)事件
下面演示當(dāng)單擊屬性控件時,觸發(fā)樹形節(jié)點的響應(yīng)事件。
實例演示2:添加響應(yīng)事件
鼠標(biāo)點擊時,所在的行變成綠色,顯示效果如下。

3、系統(tǒng)定制模式
在上面的例子中,QTreeWidgetItem類的節(jié)點是一個個添加的,這樣做有時很不方便,特別是當(dāng)窗口中產(chǎn)生比較復(fù)雜的樹形結(jié)構(gòu)時,一般都是通過QTreeView類來實現(xiàn)的,而不是QTreeWidget類。QTreeView類與 QTreeWidget類最大的區(qū)別就是,QTreeView類可以使用操作系統(tǒng)提供的定制模式,比如文件系統(tǒng)盤的樹列表。
實例演示3:系統(tǒng)定制模式
運行代碼,則顯示出當(dāng)前電腦磁盤信息,顯示效果如下圖所示。
