pyqt Qtreeview分层控件

pyqt Qtreeview分层控件

  • 介绍
  • 效果
  • 代码

介绍

QTreeView 是 PyQt中的一个控件,它用于展示分层数据,如目录结构、文件系统 等。QTreeView 通常与模型(如 QStandardItemModel、QFileSystemModel 或自定义模型)一起使用,以管理数据和提供视图如何显示数据的规则。

效果

代码

python 复制代码
from PyQt5.QtWidgets import QApplication, QTreeView, QVBoxLayout, QWidget
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qt


class TreeViewExample(QWidget):
    def __init__(self):
        super().__init__()

        # 初始化布局和视图
        self.initUI()

    def initUI(self):
        # 创建一个垂直布局
        layout = QVBoxLayout()

        # 创建一个模型
        model = QStandardItemModel()

        # 创建根节点
        root_item = model.invisibleRootItem()

        # 添加一些子节点到根节点
        item1 = QStandardItem('Item 1')
        item11 = QStandardItem('Item 1.1')
        item12 = QStandardItem('Item 1.2')
        item1.appendRow([item11, item12])
        root_item.appendRow(item1)

        item2 = QStandardItem('Item 2')
        item21 = QStandardItem('Item 2.1')
        item2.appendRow(item21)
        root_item.appendRow(item2)

        # 创建一个视图并设置模型
        tree_view = QTreeView()
        tree_view.setModel(model)

        # 设置视图的扩展标志以允许所有列展开
        tree_view.setExpandsOnDoubleClick(False)
        tree_view.setRootIsDecorated(False)
        tree_view.setSortingEnabled(True)

        # 添加视图到布局
        layout.addWidget(tree_view)

        # 设置窗口布局
        self.setLayout(layout)

        # 设置窗口标题和大小
        self.setWindowTitle('QTreeView Example')
        self.setGeometry(300, 300, 300, 200)


if __name__ == '__main__':
    app = QApplication([])
    ex = TreeViewExample()
    ex.show()
    app.exec_()
相关推荐
m0_611349314 分钟前
什么是副作用(Side Effects)
开发语言·前端·javascript
幽影相随5 分钟前
TensorBoard 快速使用指南
pytorch·python·tensorboard
其美杰布-富贵-李9 分钟前
TensorBoard 与 WandB 在 PyTorch Lightning 中的完整指南
人工智能·pytorch·python·监控·调优
Python永远的神10 分钟前
告别循环:Python 列表推导式,让你的代码飞起来!
python
妮妮分享14 分钟前
维智地图如何集成
开发语言·ios·swift
Vic1010114 分钟前
Spring AOP 高级陷阱:为什么 @Before 修改参数是“伪修改“?
java·python·spring
小智RE0-走在路上19 分钟前
Python学习笔记(12) --对象,类的成员方法,构造方法,其他内置方法,封装,继承,多态,类型注解
笔记·python·学习
weixin_4397062520 分钟前
如何使用JAVA进行MCP服务创建以及通过大模型进行调用
java·开发语言
执笔论英雄22 分钟前
[RL]协程asyncio.CancelledError
开发语言·python·microsoft
A242073493023 分钟前
深入理解JS DOM:从基础操作到性能优化的全面指南
开发语言·javascript·ecmascript