锋哥原创的PyQt6视频教程:
2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV11C4y1P7fj/
QTreeWidget树控件,它提供了一个使用预定义树模型的树视图,它的每一个树节点都是一个QTreeWidgetItem。
由于QTreeWidget类继承自QTreeView,因此,它具有QTreeView的所有公共方法,另外,它还提供了一些自身特有的方法。
QTreeWidget类的常用方法:
方法 | 说明 |
---|---|
addTopLevelltem() | 添加顶级节点 |
insertTopLevelltems() | 在树的顶层索引中插入节点 |
invisibleRootItem() | 获取树控件中不可见的根选项 |
setColumnCount() | 设置要显示的列数 |
setColumnWidth() | 设置列的宽度 |
selectedItems() | 获取选中的树节点 |
QTreeWidgetItem类的常用方法:
方法 | 说明 |
---|---|
addChild() | 添加子节点 |
setText() | 设置节点的文本 |
setCheckState() | 设置指定节点的选中状态,取值如下。 Qt.Checked:节点选中; Qt.Unchecked:节点未选中 |
setIcon() | 为节点设置图标 |
text() | 获取节点的文本 |
UI生成代码参考:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(649, 550)
self.treeWidget = QtWidgets.QTreeWidget(parent=Form)
self.treeWidget.setGeometry(QtCore.QRect(140, 110, 381, 321))
self.treeWidget.setColumnCount(0)
self.treeWidget.setObjectName("treeWidget")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
Main测试代码:
"""
python加载ui文件
作者 : 小锋老师
官网 : www.python222.com
"""
import sys
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QIcon
from PyQt6.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
from PyQt6 import uic
if __name__ == '__main__':
app = QApplication(sys.argv)
ui = uic.loadUi("./QTreeWidget树控件.ui")
myTreeWidget: QTreeWidget = ui.treeWidget
myTreeWidget.setHeaderLabels(['分类', '书名', '作者', '价格']) # 设置列标题
bookType1 = QTreeWidgetItem(myTreeWidget) # 创建一级节点
bookType1.setText(0, "Java类")
bookType1.setIcon(0, QIcon('type.png')) # 为节点设置icon图标
bookType1Child1 = QTreeWidgetItem(bookType1) # 创建二级节点
bookType1Child1.setText(0, '')
bookType1Child1.setText(1, 'Java编程思想')
bookType1Child1.setText(2, '埃克尔')
bookType1Child1.setText(3, '109')
bookType1Child1.setCheckState(1, Qt.CheckState.Unchecked) # 为节点设置复选框 默认不选中
bookType1Child2 = QTreeWidgetItem(bookType1) # 创建二级节点
bookType1Child2.setText(0, '')
bookType1Child2.setText(1, 'Java从入门到精通')
bookType1Child2.setText(2, '码牛逼')
bookType1Child2.setText(3, '111')
bookType1Child2.setCheckState(1, Qt.CheckState.Unchecked) # 为节点设置复选框 默认不选中
bookType2 = QTreeWidgetItem(myTreeWidget) # 创建一级节点
bookType2.setText(0, "Python类")
bookType2.setIcon(0, QIcon('type.png'))
bookType2Child1 = QTreeWidgetItem(bookType2) # 创建二级节点
bookType2Child1.setText(0, '')
bookType2Child1.setText(1, 'Python编程思想')
bookType2Child1.setText(2, '王小')
bookType2Child1.setText(3, '199')
bookType2Child1.setCheckState(1, Qt.CheckState.Unchecked) # 为节点设置复选框 默认不选中
bookType2Child2 = QTreeWidgetItem(bookType2) # 创建二级节点
bookType2Child2.setText(0, '')
bookType2Child2.setText(1, 'Python从入门到精通')
bookType2Child2.setText(2, '码牛逼')
bookType2Child2.setText(3, '101')
bookType2Child2.setCheckState(1, Qt.CheckState.Unchecked) # 为节点设置复选框 默认不选中
bookType3 = QTreeWidgetItem(myTreeWidget) # 创建一级节点
bookType3.setText(0, "Go类")
bookType3.setIcon(0, QIcon('type.png'))
bookType3Child1 = QTreeWidgetItem(bookType3) # 创建二级节点
bookType3Child1.setText(0, '')
bookType3Child1.setText(1, 'Go编程思想')
bookType3Child1.setText(2, '王小')
bookType3Child1.setText(3, '199')
bookType3Child1.setCheckState(1, Qt.CheckState.Unchecked) # 为节点设置复选框 默认不选中
myTreeWidget.setAlternatingRowColors(True) # 设置斑马线 交替隔行换色 灰白间隔
myTreeWidget.expandAll()
ui.show()
sys.exit(app.exec())