亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例

瀏覽:11日期:2022-08-04 18:29:40
PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget簡(jiǎn)介

QTreeWidget 類根據(jù)預(yù)設(shè)的模型提供樹(shù)形顯示控件。

QTreeWidget 使用類似于 QListView 類的方式提供一種典型的基于 item 的樹(shù)形交互方法類,該類基于QT的“模型/視圖”結(jié)構(gòu),提供了默認(rèn)的模型來(lái)支撐 item 的顯示,這些 item 類為 QTreeWidgetItem 類。

如果不需要靈活的“模型/視圖”框架,可以使用QTreeWidget 來(lái)創(chuàng)建有層級(jí)關(guān)系的樹(shù)形結(jié)構(gòu)。當(dāng)把標(biāo)準(zhǔn) item 模型結(jié)合 QTreeView 使用時(shí),可以得到更靈活的使用方法,從而把“數(shù)據(jù)”和“顯示”分離開(kāi)。

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

樹(shù)形結(jié)構(gòu)是通過(guò)QTreeWidget和QTreeWidgetItem類實(shí)現(xiàn)的,其中QTreeWidgetItem類實(shí)現(xiàn)了節(jié)點(diǎn)的添加,其完整代碼如下

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() #設(shè)置列數(shù) self.tree.setColumnCount(2) #設(shè)置樹(shù)形控件頭部的標(biāo)題 self.tree.setHeaderLabels([’Key’,’Value’]) #設(shè)置根節(jié)點(diǎn) root=QTreeWidgetItem(self.tree) root.setText(0,’Root’) root.setIcon(0,QIcon(’./images/root.png’)) # todo 優(yōu)化2 設(shè)置根節(jié)點(diǎn)的背景顏色 brush_red=QBrush(Qt.red) root.setBackground(0,brush_red) brush_blue=QBrush(Qt.blue) root.setBackground(1,brush_blue) #設(shè)置樹(shù)形控件的列的寬度 self.tree.setColumnWidth(0,150) #設(shè)置子節(jié)點(diǎn)1 child1=QTreeWidgetItem() child1.setText(0,’child1’) child1.setText(1,’ios’) child1.setIcon(0,QIcon(’./images/IOS.png’)) #todo 優(yōu)化1 設(shè)置節(jié)點(diǎn)的狀態(tài) child1.setCheckState(0,Qt.Checked) root.addChild(child1) #設(shè)置子節(jié)點(diǎn)2 child2=QTreeWidgetItem(root) child2.setText(0,’child2’) child2.setText(1,’’) child2.setIcon(0,QIcon(’./images/android.png’)) #設(shè)置子節(jié)點(diǎn)3 child3=QTreeWidgetItem(child2) child3.setText(0,’child3’) child3.setText(1,’android’) child3.setIcon(0,QIcon(’./images/music.png’)) #加載根節(jié)點(diǎn)的所有屬性與子控件 self.tree.addTopLevelItem(root) #TODO 優(yōu)化3 給節(jié)點(diǎn)添加響應(yīng)事件 self.tree.clicked.connect(self.onClicked) #節(jié)點(diǎn)全部展開(kāi) 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_())

初始運(yùn)行圖如下

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例

優(yōu)化一:設(shè)置節(jié)點(diǎn)的狀態(tài)

這里添加了child1的選中狀態(tài)

 child1.setCheckState(0,Qt.Checked)

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例

優(yōu)化二:設(shè)置節(jié)點(diǎn)的背景顏色

這里設(shè)置了根節(jié)點(diǎn)的背景顏色

brush_red=QBrush(Qt.red)

        root.setBackground(0,brush_red)

        brush_blue=QBrush(Qt.blue)

        root.setBackground(1,brush_blue)

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例

優(yōu)化三:給節(jié)點(diǎn)添加響應(yīng)事件

點(diǎn)擊,會(huì)在控制臺(tái)輸出當(dāng)前地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庫(kù)圖形界面開(kāi)發(fā)之PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例

系統(tǒng)定制模式實(shí)例

在上面的例子中,QTreeWidgetItem類的節(jié)點(diǎn)是一個(gè)個(gè)添加上去的,這樣有時(shí)很不方便,特別是窗口產(chǎn)生比較復(fù)雜的樹(shù)形結(jié)構(gòu)時(shí),一般都是通過(guò)QTreeView類來(lái)實(shí)現(xiàn)的,而不是QTreeWidget類,QTreeView和QTreeWidget類最大的區(qū)別就是,QTreeView類可以使用操作系統(tǒng)提供的定制模式,比如文件系統(tǒng)盤(pán)的樹(shù)列表

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

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例

本文主要講解了PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例,更多關(guān)于PyQt5控件使用知識(shí)請(qǐng)查看下面的相關(guān)鏈接

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成人免费视频视频在线不卡 | 在线永久免费观看的a站视频 | 在线观看日本永久免费视频 | 国产v片在线播放免费观 | 久久精品30| 久久香蕉国产线看观看式 | 丰满成熟亚洲人毛茸茸 | 在线高清视频观看vvvv | 亚洲精品一区二区三区在 | 国产污视频在线观看 | 真实偷清晰对白在线视频 | 日韩一区国产二区欧美三区 | 国产成人精品免费影视大全 | 国产午夜大片 | 成人午夜精品久久不卡 | 亚洲一级色| 性色a| 欧美日韩色视频在线观看 | 精品一区亚洲 | 国产美女精品在线 | 久久在线精品视频 | 高潮影院| 日韩欧美亚洲精品 | 国产麻豆网站 | 青草视频网 | 青青国产成人久久91网 | 性大片免费观看yy | 亚洲国产一成人久久精品 | 免费一级特黄特色大片在线观看看 | 久久久性视频 | 自拍偷拍 欧美日韩 | 国产床戏做爰免费观看网站 | 豆国产97在线 | 中国 | 国产一区二区免费在线 | 青草精品| 日本高清一级做a爱过程免费视频 | 国产一区二区三区鲁婷婷 | 天天做天天爱天天影视综合 | 亚洲精品99久久久久中文字幕 | 好属妞这里只有精品久久 | 国产一区二区fc2ppv在线播放 |