pyqt Qtreeview分层控件
- 介绍
- 效果
- 代码
介绍
QTreeView 是 PyQt中的一个控件,它用于展示分层数据,如目录结构、文件系统等。QTreeView 通常与模型(如 QStandardItemModel、QFileSystemModel 或自定义模型)一起使用,以管理数据和提供视图如何显示数据的规则。
效果
代码
from PyQt5.QtWidgets import QApplication, QTreeView, QVBoxLayout, QWidget
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qtclass 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_()