博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QTreeWidget 获取被双击的子项的层次路径
阅读量:7087 次
发布时间:2019-06-28

本文共 4274 字,大约阅读时间需要 14 分钟。

 

 

from PyQt5.QtWidgets import (QApplication, QWidget, QHBoxLayout,                                QTreeWidget, QTreeWidgetItem,                                QGroupBox)from PyQt5.QtGui import QIcon, QPixmapfrom PyQt5.QtCore import QSizeclass  Bar_Navigation(QWidget):        def  __init__(self):            super(Bar_Navigation, self).__init__()            self.setMinimumHeight(600);            self.setMinimumWidth(800);                        ##layout_main.setMargin(5)            ##layout_main.setSpace(5)            self.creat_main_layout()            self.creat_bar_navigation()            self.creat_left_box()                 def get_bar_list(self):                       bar_list_item = []            bar_list_1 = ["订货管理",                                             ["客户订货", "库存订货", "供货商订货"]                                    ]            bar_list_2 = ["入库管理",                                             ["采购入库", "订货入库", "其它入库"]                                    ]            bar_list_item.append(bar_list_1)            bar_list_item.append(bar_list_2)            return  bar_list_item                    def creat_main_layout(self):              self.layout_main = QHBoxLayout()            self.setLayout( self.layout_main)                 def creat_bar_list(self, data):                        for item in data:                item_1 =  QTreeWidgetItem( self.tree_Navigation);                            ##item_1.setText(0,item[0])                          ## 设置节点的打开/关闭状态下的不同的图片                icon = QIcon()                ##节点打开状态                 icon.addPixmap(QPixmap("./logo2.png"), QIcon.Normal, QIcon.On)                ##节点关闭状态                   icon.addPixmap(QPixmap("./logo1.png"), QIcon.Normal, QIcon.Off)                item_1.setIcon(0, icon)                                for item_item in item[1]:                    item_1_1 =  QTreeWidgetItem( item_1);                                item_1_1.setText(0,item_item)                   self.tree_Navigation.addTopLevelItem(item_1);                                                         def creat_bar_navigation(self):            self.tree_Navigation = QTreeWidget()                 self.tree_Navigation.setHeaderLabel("左侧导航栏");                        self.tree_Navigation.setColumnCount(1)            self.tree_Navigation.setMaximumWidth(150);                        icon_size = QSize(100, 30)            self.tree_Navigation.setIconSize(icon_size)                        ##如果treewidget就一列,该列的宽度默认等于treewidget的宽度,两列以上的话才起作用.            ##self.tree_Navigation.setColumnWidth(0,100);            data = self.get_bar_list()            self.creat_bar_list(data)            self.layout_main.addWidget(self.tree_Navigation)            ## QModelIndex            ##self.tree_Navigation.doubleClicked.connect(self.showModelSelected)            ## QTreeWidgetItem            self.tree_Navigation.itemDoubleClicked.connect(self.showSelected)                ## QModelIndex        def showModelSelected(self, modelIndex):             print( modelIndex.row(), modelIndex.column())                     ## itemObj:QTreeWidgetItem        def showSelected(self, item, column):            ##获得父节点             parent=item.parent()                            ## 注:本例的深度只有2,因此只有index_top,index_row两个变量表示路径            ##根节点上的索引            ## 合理值:非负整数            index_top = 0            ## 子节点上的索引            ##如果为-1则标示是根节点上的项;如果不是-1则标示在子节点上            ## 合理值:非负整数            index_row = -1                        ## 如果是要判断是否为None,则:            if parent is None:                index_top= self.tree_Navigation.indexOfTopLevelItem(item)            else :                                index_top =  self.tree_Navigation.indexOfTopLevelItem(parent)                  index_row=parent.indexOfChild(item)##获得节点在父节点中的行号(从0开始)                            print(index_top,  index_row)                    def creat_left_box(self):            self.box_left = QGroupBox('left party')               self.layout_main.addWidget(self.box_left)if __name__ == "__main__":    import sys    app = QApplication(sys.argv)    window = Bar_Navigation()    window.show()    sys.exit(app.exec_())

 

个人注解:   

①、treeWidget.setColumnWidth(0,100)

如果treewidget就一列,该列的宽度默认等于treewidget的宽度,两列以上的话才起作用,

 

②、如果是treeview获取点击的层级路径:

  modelindex.parent()可以获得其上级。

转载地址:http://gpwql.baihongyu.com/

你可能感兴趣的文章
dataBinding与ListView及事件
查看>>
Ubuntu linux背景指南:在开始之前需要知道哪些东西
查看>>
SID与GUID的区别
查看>>
BZOJ 2595 [Wc2008]游览计划
查看>>
Mongodb shell 基本操作
查看>>
【转】oracle connect by用法
查看>>
android Animation 动画绘制逻辑
查看>>
Ubuntu 12.04安装和设置SSH服务
查看>>
[转]重入和不可重入函数概念浅析
查看>>
实验四 主存空间的分配和回收
查看>>
scala mysql jdbc oper
查看>>
浅谈分支预测、流水线与条件转移(转载)
查看>>
前端技能树
查看>>
【软件工程】02组软件工程组队项目——课程管理小助手需求文档
查看>>
java面试每日一题8
查看>>
leetcode Majority Element
查看>>
UISprite(NGUI)扩展 图片镂空
查看>>
只是一段听力练习:金凯瑞致伊斯特伍德
查看>>
求第五个人多大岁数
查看>>
mybatis什么时候用resulttype 什么时候用resultmap
查看>>