国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python GUI庫圖形界面開發之PyQt5樹形結構控件QTreeWidget詳細使用方法與實例

瀏覽:8日期:2022-08-04 18:29:40
PyQt5樹形結構控件QTreeWidget簡介

QTreeWidget 類根據預設的模型提供樹形顯示控件。

QTreeWidget 使用類似于 QListView 類的方式提供一種典型的基于 item 的樹形交互方法類,該類基于QT的“模型/視圖”結構,提供了默認的模型來支撐 item 的顯示,這些 item 類為 QTreeWidgetItem 類。

如果不需要靈活的“模型/視圖”框架,可以使用QTreeWidget 來創建有層級關系的樹形結構。當把標準 item 模型結合 QTreeView 使用時,可以得到更靈活的使用方法,從而把“數據”和“顯示”分離開。

QTreeWidget類中的常用方法 方法 描述 setColumnWidth(int column,int width) 將指定列的寬度設置為給定的值 Column:指定的列 width:指定的寬度 insertTopLevelItems() 在視圖的頂層索引中引入項目的列表 expandAll() 展開所有節點的樹形節點 invisibleRootItem() 返回樹形控件中不可見的根選項(Root Item) selectionItems() 返回所有選定的非隱藏項目的列表內 QTreeWidgetItem類中常用的方法 方法 描述 addChild() 將子項追加到子列表中 setText() 設置顯示的節點文本 Text() 返回顯示的節點文本 setCheckState(column.state) 設置指定列的選中狀態: Qt.Checked:節點選中 Qt.Unchecked:節點沒有選中 setIcon(column,icon) 在指定的列中顯示圖標 QTreeWidget樹形結構控件的實例

樹形結構是通過QTreeWidget和QTreeWidgetItem類實現的,其中QTreeWidgetItem類實現了節點的添加,其完整代碼如下

import sysfrom PyQt5.QtWidgets import *from PyQt5.QtGui import QIcon, QBrush, QColorfrom PyQt5.QtCore import Qtclass TreeWidgetDemo(QMainWindow): def __init__(self, parent=None): super(TreeWidgetDemo, self).__init__(parent) self.setWindowTitle(’TreeWidget 例子’) self.tree=QTreeWidget() #設置列數 self.tree.setColumnCount(2) #設置樹形控件頭部的標題 self.tree.setHeaderLabels([’Key’,’Value’]) #設置根節點 root=QTreeWidgetItem(self.tree) root.setText(0,’Root’) root.setIcon(0,QIcon(’./images/root.png’)) # todo 優化2 設置根節點的背景顏色 brush_red=QBrush(Qt.red) root.setBackground(0,brush_red) brush_blue=QBrush(Qt.blue) root.setBackground(1,brush_blue) #設置樹形控件的列的寬度 self.tree.setColumnWidth(0,150) #設置子節點1 child1=QTreeWidgetItem() child1.setText(0,’child1’) child1.setText(1,’ios’) child1.setIcon(0,QIcon(’./images/IOS.png’)) #todo 優化1 設置節點的狀態 child1.setCheckState(0,Qt.Checked) root.addChild(child1) #設置子節點2 child2=QTreeWidgetItem(root) child2.setText(0,’child2’) child2.setText(1,’’) child2.setIcon(0,QIcon(’./images/android.png’)) #設置子節點3 child3=QTreeWidgetItem(child2) child3.setText(0,’child3’) child3.setText(1,’android’) child3.setIcon(0,QIcon(’./images/music.png’)) #加載根節點的所有屬性與子控件 self.tree.addTopLevelItem(root) #TODO 優化3 給節點添加響應事件 self.tree.clicked.connect(self.onClicked) #節點全部展開 self.tree.expandAll() self.setCentralWidget(self.tree) def onClicked(self,qmodeLindex): item=self.tree.currentItem() print(’Key=%s,value=%s’%(item.text(0),item.text(1)))if __name__ == ’__main__’: app = QApplication(sys.argv) tree = TreeWidgetDemo() tree.show() sys.exit(app.exec_())

初始運行圖如下

python GUI庫圖形界面開發之PyQt5樹形結構控件QTreeWidget詳細使用方法與實例

優化一:設置節點的狀態

這里添加了child1的選中狀態

 child1.setCheckState(0,Qt.Checked)

python GUI庫圖形界面開發之PyQt5樹形結構控件QTreeWidget詳細使用方法與實例

優化二:設置節點的背景顏色

這里設置了根節點的背景顏色

brush_red=QBrush(Qt.red)

        root.setBackground(0,brush_red)

        brush_blue=QBrush(Qt.blue)

        root.setBackground(1,brush_blue)

python GUI庫圖形界面開發之PyQt5樹形結構控件QTreeWidget詳細使用方法與實例

優化三:給節點添加響應事件

點擊,會在控制臺輸出當前地key值與value值

self.tree.clicked.connect(self.onClicked)

def onClicked(self,qmodeLindex):

        item=self.tree.currentItem()

        print(’Key=%s,value=%s’%(item.text(0),item.text(1)))

python GUI庫圖形界面開發之PyQt5樹形結構控件QTreeWidget詳細使用方法與實例

系統定制模式實例

在上面的例子中,QTreeWidgetItem類的節點是一個個添加上去的,這樣有時很不方便,特別是窗口產生比較復雜的樹形結構時,一般都是通過QTreeView類來實現的,而不是QTreeWidget類,QTreeView和QTreeWidget類最大的區別就是,QTreeView類可以使用操作系統提供的定制模式,比如文件系統盤的樹列表

import sysfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *if __name__ == ’__main__’: app=QApplication(sys.argv) #window系統提供的模式 model=QDirModel() #創建一個QTreeView的控件 tree=QTreeView() #為控件添加模式 tree.setModel(model) tree.setWindowTitle(’QTreeView例子’) tree.resize(640,480) tree.show() sys.exit(app.exec_())

python GUI庫圖形界面開發之PyQt5樹形結構控件QTreeWidget詳細使用方法與實例

本文主要講解了PyQt5樹形結構控件QTreeWidget詳細使用方法與實例,更多關于PyQt5控件使用知識請查看下面的相關鏈接

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩欧美亚洲每的更新在线 | 免费五级在线观看日本片 | 精品国产欧美一区二区最新 | a毛片免费播放全部完整 | 黄色a一片 | 日本aa毛片a级毛片免费观看 | 99视频国产热精品视频 | 亚洲精品在线免费观看视频 | 国产成人成人一区二区 | 在线精品日韩一区二区三区 | 国产91区 | 国产成人免费视频精品一区二区 | 成人免费视频一区 | 另类视频在线 | 九九成人 | 美女黄色免费在线观看 | 99久久精品国产综合一区 | 视色4setv.com| 免费看特黄特黄欧美大片 | 女在床上被男的插爽叫视频 | 国产精品黄网站免费进入 | 欧美日本一区亚洲欧美一区 | 呦视频在线一区二区三区 | 国产大片线上免费观看 | 草草影院ccyy国产日本欧美 | 亚洲福利国产精品17p | 久99re视频9在线观看 | 国产亚洲人成网站观看 | 国产亚洲福利一区二区免费看 | 兔费看全黄三级 | 免费一区二区三区久久 | 免费一级欧美大片久久网 | 亚洲日本视频在线观看 | 欧美一级三级 | 台湾一级特黄精品大片 | 免费成年人在线观看视频 | 亚洲成aⅴ人片在线影院八 亚洲成av人片在线观看 | 久久久久久久久性潮 | 国产亚洲精品久久综合影院 | 黄色影院在线观看视频 | 在线亚洲精品中文字幕美乳 |