树形控件QTreeWidget

 1 import sys
 2 from PyQt5.QtCore import Qt
 3 from PyQt5.QtWidgets import QApplication, QWidget, QTreeWidget, QTreeWidgetItem, QLabel, QHBoxLayout
 4
 5
 6 class Demo(QWidget):
 7     def __init__(self):
 8         super(Demo, self).__init__()
 9         self.resize(500, 300)
10         self.label = QLabel(‘No Click‘)
11
12         self.tree = QTreeWidget(self)  # 实例化树形控件
13         self.tree.setColumnCount(1)  #将该树状控件的列数设为2(默认为1列)
14         self.tree.setHeaderLabels([‘树形控件‘, ‘列‘])
15         #设置每列的标题,如果只有一列的话,则应该通过setHeaderLabel(str)方法设置
16
17         self.tree.itemClicked.connect(self.change_func)#单击控件时发出信号
18         #这个信号会自动传递两个参数
19         #参数1就是被单击的项目对象。<PyQt5.QtWidgets.QTreeWidgetItem object at 0x0000008269BE7EE8>
20         #参数2就是单击的列序号
21
22         self.preview = QTreeWidgetItem(self.tree)  # 实例化一个项目。参数:指定父类
23         self.preview.setText(0, ‘顶层项目‘)  #给项目设置文本。参数1:列序号
24         self.preview.setText(1, ‘顶层项目-1列‘)
25
26         self.preview1 = QTreeWidgetItem()
27         self.preview1.setText(0, ‘顶层项目1‘)
28         self.preview1.setText(1, ‘顶层项目1-1列‘)
29         self.tree.addTopLevelItem(self.preview1)  #把self.preview1项目设置为顶层项目
30
31         self.qt5112 = QTreeWidgetItem()
32         self.qt5112.setText(0, ‘Qt 5112 snapshot‘)
33         self.qt5112.setCheckState(0, Qt.Unchecked)  #设置复选框的位置和状态
34         #参数1 复选框的位置 列序号
35         #Qt.Unchecked   没选中
36         #Qt.Checked    选中
37         #Qt.PartiallyChecked   部分选中
38
39         self.preview.addChild(self.qt5112)#给self.preview添加子项目self.qt5112
40         #给self.qt5112添加父类
41
42         choice_list = [‘macOS‘, ‘Android x86‘, ‘Android ARMv7‘, ‘Sources‘, ‘iOS‘]
43         self.item_list = []
44         for i, c in enumerate(choice_list):
45             item = QTreeWidgetItem(self.qt5112)
46             item.setText(0, c)
47             item.setCheckState(0, Qt.Unchecked)
48             self.item_list.append(item)
49
50         self.test_item = QTreeWidgetItem(self.qt5112)
51         self.test_item.setText(0, ‘test1‘)
52         self.test_item.setText(1, ‘test2‘)
53
54         self.tree.expandAll()
55         #让所有的项都是以打开状态显示的。注意必须要在所有项都已经实例化好之后再调用该方法,如果一开始就调用则会没有效果
56
57         self.h_layout = QHBoxLayout()
58         self.h_layout.addWidget(self.tree)
59         self.h_layout.addWidget(self.label)
60         self.setLayout(self.h_layout)
61
62     def change_func(self, item, column):
63         self.label.setText(item.text(column))
64         #item.text(column)  返回项目指定列的文本
65
66         if item == self.qt5112:
67             if self.qt5112.checkState(0) == Qt.Checked:#判断self.qt5112复选框的状态。参数复选框位置:列序号
68                 #self.qt5112.checkState(0)   返回复选框的状态
69                 [x.setCheckState(0, Qt.Checked) for x in self.item_list]
70             else:
71                 [x.setCheckState(0, Qt.Unchecked) for x in self.item_list]
72         else:
73             check_count = 0
74             for x in self.item_list:
75                 if x.checkState(0) == Qt.Checked:
76                     check_count += 1
77
78             if check_count == 5:
79                 self.qt5112.setCheckState(0, Qt.Checked)
80             elif 0 < check_count < 5:
81                 self.qt5112.setCheckState(0, Qt.PartiallyChecked)  #设置复选框为半选中状态
82             else:
83                 self.qt5112.setCheckState(0, Qt.Unchecked)
84
85
86 if __name__ == ‘__main__‘:
87     app = QApplication(sys.argv)
88     demo = Demo()
89     demo.show()
90     sys.exit(app.exec_())

原文地址:https://www.cnblogs.com/liming19680104/p/10383021.html

时间: 2024-10-19 15:00:18

树形控件QTreeWidget的相关文章

Qt树形控件QTreeView使用1——节点的添加删除操作 复选框的设置

QtreeView是ui中最常用的控件,Qt中QTreeWidget比QTreeView更简单,但没有QTreeView那么灵活(QTreeWidget封装的和MFC的CTreeCtrl很类似,没有mvc的特点). 1. QStandardItemModel在QTreeView中的使用 使用QTreeView的对应模型是QStandardItemModel,这个是Qt对应ui界面最有用的模型,它可以用于树形控件.列表控件.表格控件等等和条目有关的控件.QStandardItemModel用于列表

Qt: 创建具有复选框的树形控件

在Qt中的树形控件称为QTreeWidget,而控件里的树形节点称为QTreeWidgetItem. 关于QTreeWidget控件和QTreeWidgetItem的更多详细知识点,可以查看Qt的官方帮助文档. QTreeWidget类: QTreeWidgetItem类: 实现的功能: 创建树形控件,当选中顶层树形节点时,子节点全部选中. 当选中部分子节点时,顶层树形节点处于灰色未全部选中状态.(部分选中状态) 当子节点全部选中,顶层节点变为选中状态. 具体步骤: 1.  新建Qt GUI应用

win32 sdk树形控件的项拖拽实现

本课中,我们将学习如何使用树型视图控件.另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表. 理论: 树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系.譬如象在资源管理器中左边窗口中的就是树型视图.您可以调用CreateWindowEx来创建树型视图,传递一个类名""SysTreeView32"",或者您也可以把它放到一个对话框中去.不要忘了在您的代码中加入InitCommonControls函数. 树型视图有几种特有的风格.下面是几

Web应用程序开发,基于Ajax技术的JavaScript树形控件

感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项. 目前市场上常见的JavaScript框架及组件库中均包含自己的树形控件,例如jQuery.Dojo.YUI.Ext JS等,还有一些独立的树形控件,例如dhtmlxTree等,这些树形控件完美的解决了层次数据的展示问题. 展示离不开数据,树形控件主要

共有21款 jQuery 树形控件开源软件,第1页

JQuery Tree 插件 zTree zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 支持 JSON 数据 支持一次性静态生成 和 Ajax 异步加载 两种方式 支持多种事件响应及反馈 支持 Tree...更多zTree信息 最近更新: [每日一博]Ztree+PHP 无限极节点递归查找节点 发布于 1年前 jQuery的Tree控件 jstree j

zTree 树形控件 ajax动态加载数据

很久没搞过树形控件了 , 再次接触看官网文档有点没懂,于是在网上找了个代码copy上,但数据是写死的,就想这在用ajax异步取出数据替换,下面是js代码 <SCRIPT type="text/javascript" > //定义全局ztree数据 var zNodes; /* 初始化ztree数据 */ function initZtree(){ $.ajax({ type: "GET", url: "<%=request.getCont

简陋的树形控件

<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery.min.js"></script> <script> function rootClicked(v) { var newItem=document.createElement("div"); $(newItem).addClass("item

树形控件简单样例

此实例实现的功能:在一个树形控件中显示鸡啄米站点的简单结构分层,共同拥有三层.分别为鸡啄米站点.各个分类和文章.用鼠标左键单击改变选中节点后.将选中节点的文本显示到编辑框中.以下是详细实现步骤: 1. 创建一个基于对话框的MFCproject,名称设置为"Example31". 2. 在自己主动生成的对话框模板IDD_EXAMPLE31_DIALOG中,删除"TODO: Place dialog controls here."静态文本框."OK"

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题 分类: SharePoint2012-01-16 14:24 1295人阅读 评论(1) 收藏 举报 sharepoint2010queryurllistborder SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题 1.实现效果如下: 点击各个节点进入相应的链接 2.测试列表: 3.