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

1.3 樹結構控件QTreeWidget及其項QTreeWidgetItem

在PySide6中,使用QTreeWidget類表示樹結構控件,樹結構控件由一列或多列組成。樹結構控件有一個或多個頂層項,頂層項下面有任意多個子項,子項下面可以繼續有子項,頂層項沒有父項。與列表控件和表格控件不同,樹結構的各個項之間有層級關系,可以折疊和展開。

使用QTreeWidgetItem類表示樹結構控件的項,使用QTreeWidgetItem類可以定義項中的文字和圖標。

1.3.1 樹結構控件QTreeWidget

在PySide6中,使用QTreeWidget類創建樹結構控件。QTreeWidget類是QTreeView類的子類,其繼承關系圖如圖1-1所示。QTreeWidget類的構造函數如下:

     QTreeWidget(parent:QWidget=None)

其中,parent表示父窗口或父控件

QTreeWidget類的常用方法見表1-8。

表1-8 QTreeWidget類的常用方法

續表

在PySide6中,QTreeWidget類的信號見表1-9。

表1-9 QTreeWidget類的信號

1.3.2 QTreeWidgetItem類

在PySide6中,使用QTreeWidgetItem類創建樹結構的項,QTreeWidgetItem類的構造函數如下:

     QTreeWidgetItem(type=QTreeWidgetItem.Type)
     QTreeWidgetItem(QTreeWidget,type=QTreeWidgetItem.Type)
     QTreeWidgetItem(Sequence[str],type=QTreeWidgetItem.Type)
     QTreeWidgetItem(QTreeWidget,Sequence[str],type=QTreeWidgetItem.Type)
     QTreeWidgetItem(QTreeWidgetItem,type=QTreeWidgetItem.Type)
     QTreeWidgetItem(QTreeWidget,QTreeWidgetItem,type=QTreeWidgetItem.Type)
     QTreeWidgetItem(QTreeWidgetItem,Sequence[str],type=QTreeWidgetItem.Type)
     QTreeWidgetItem(QTreeWidgetItem,QTreeWidgetItem,type=QTreeWidgetItem.Type)

其中,type的取值為QTreeWidgetItem.Type(默認值,值為1)或QTreeWidgetItem.UserType(值為1000),QTreeWidgetItem.UserType也是用戶自定義類型的最小值;Sequence[str]表示字符串序列,即各列上的文字;當第1個參數為QTreeWidget時表示項添加到樹結構控件中;當第1個參數為QTreeWidgetItem時表示父項,新創建的項作為子項添加到父項下;當第2個參數為QTreeWidgetItem時表示將新創建的項插入該項的下面。

QTreeWidgetItem類的常用方法見表1-10。

表1-10 QTreeWidgetItem類的常用方法

在表1-10中,QTreeWidgetItem.ChildIndictorPolicy的枚舉值為QTreeWidgetItem.ShowIndicator(無論是否有子項都顯示標識)、QTreeWidgetItem.DontShowIndicator(使有子項,也不顯示標識)、QTreeWidgetItem.DontShowIndicatorWhenChildless(當沒有子項時,不顯示標識)。

【實例1-10】 創建一個窗口,該窗口包含一個樹結構控件、一個標簽控件。向樹結構控件中添加兩列數據,如果選中包含兩列數據的項,則標簽顯示對應的信息,代碼如下:

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

圖1-29 代碼demo10.py的運行結果

1.3.3 使用Qt Designer創建樹結構控件

在PySide6中,可以使用Qt Designer在窗口中創建樹結構控件。

【實例1-11】 使用Qt Designer設計一個包含樹結構控件的窗口,向樹結構控件中添加兩列數據。操作步驟如下:

(1)打開Qt Designer軟件,創建一個Widget類型的窗口,如圖1-30所示。

圖1-30 創建的窗口

(2)將工具箱中的Tree Widget控件拖曳到主窗口,如圖1-31所示。

(3)選中主窗口上的Tree Widget控件,右擊,在彈出的菜單欄中選擇“編輯項目”,此時會彈出一個“編輯樹窗口部件”對話框,如圖1-32和圖1-33所示。

圖1-31 拖曳Tree Widget控件

圖1-32 右擊后彈出的菜單

圖1-33 “編輯樹窗口部件”對話框

(4)在“編輯樹窗口部件”對話框的“列”選項卡中,單擊左下角的加號圖標可以為樹結構控件添加列,單擊左下角的減號圖標可以刪除當前列。添加兩列,如圖1-34所示。

圖1-34 為樹結構控件添加列

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

圖1-35 為樹結構控件添加項

(6)在“編輯樹窗口部件”對話框中,單擊“確定”按鈕,可查看已經添加項的樹結構控件,如圖1-36所示。

(7)修改主窗口的標題,將主窗口的布局設置為水平布局,如圖1-37所示。

(8)將設計的窗口文件命名為demo11.ui,并保存在D盤的Chapter1文件夾下,然后在Windows命令行窗口將demo11.ui文件轉換為demo11.py,操作過程如圖1-38所示。

圖1-36 已經添加項的樹結構控件

圖1-37 設置布局后的主窗口

圖1-38 將demo11.ui文件轉換為demo11.py

(9)編寫業務邏輯代碼,代碼如下:

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

圖1-39 代碼demo11_main.py的運行結果

主站蜘蛛池模板: 新竹县| 九龙坡区| 澳门| 凤阳县| 广安市| 新平| 涿州市| 鲁甸县| 个旧市| 修水县| 白城市| 河间市| 湄潭县| 南阳市| 松原市| 南宫市| 越西县| 郴州市| 闻喜县| 开平市| 长武县| 屏东市| 原阳县| 邮箱| 沁阳市| 鸡泽县| 望江县| 甘孜县| 景谷| 西乌珠穆沁旗| 汉源县| 道真| 济南市| 哈密市| 屯留县| 贵阳市| 平原县| 五河县| 满城县| 靖州| 南木林县|