本文共 2629 字,大约阅读时间需要 8 分钟。
方法 | 描述 |
---|---|
setColumnWidth(int column,int width) | 将指定列的宽度设置为给定的值width |
insertTopLevelItems() | 在视图的顶层索引中插入项目列表 |
expandAll() | 展开所有的树形节点 |
invisibleRootItem() | 返回树形控件中不可见的根选项 |
selectedItems() | 返回所有选定的非隐藏项目的列表 |
方法 | 描述 |
---|---|
addChild() | 将子项追加到子列表中 |
setText() | 设置显示的节点文本 |
Text() | 返回显示的节点文本 |
setCheckState(column,state) | 设置指定列的选中状态:Qt.Checked(节点选中),Qt.Unchecked(节点未选中) |
setIcon(column,icon) | 在指定的列中显示图标 |
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Table(QMainWindow): def __init__(self): super().__init__() self.setGeometry(300, 300, 500, 400) self.setWindowTitle('QTreeWidget的基本用法') self.tree = QTreeWidget() #设置列数 self.tree.setColumnCount(2) #设置树形控件头部的标题 self.tree.setHeaderLabels(['key','value']) #设置根节点 root = QTreeWidgetItem(self.tree) root.setText(0,'root') #设置树形控件的列的宽度 self.tree.setColumnWidth(0,160) #设置子节点1 child1 = QTreeWidgetItem(root) child1.setText(0,'child1') child1.setText(1,'ios') #设置子节点2 child2 = QTreeWidgetItem(root) child2.setText(0,'child2') child2.setText(1,'') #设置子节点3 child3 = QTreeWidgetItem(child2) child3.setText(0,'child3') child3.setText(1,'android') self.tree.addTopLevelItem(root) self.setCentralWidget(self.tree) self.tree.expandAll()if __name__ == "__main__": app = QApplication(sys.argv) form = Table() form.show() sys.exit(app.exec_())
运行效果如下:
还可以通过QTreeWidget.insertTopLevelItems()
来实现树形结构,核心代码如下: #设置根节点root = QTreeWidgetItem(self.tree)root.setText(0,'root')rootList = []rootList.append(root)child1 = QTreeWidgetItem()child1.setText(0,'child1')child1.setText(1,'ios')root.addChild(child1)self.tree.insertTopLevelItems(0,rootList)
#设置是否选中child1.setCheckState(0,Qt.Checked)
brush_red = QBrush(Qt.red)root.setBackground(0,brush_red)brush_green = QBrush(Qt.green)root.setBackground(1,brush_green)
self.tree.clicked.connect(self.onTreeClicked)def onTreeClicked(self,q): item = self.tree.currentItem() print('key=%s,value=%s' %(item.text(0),item.text(1)))
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *if __name__ == "__main__": app = QApplication(sys.argv) #window系统提供的模式 model = QDirModel() #创建一个QTreeView控件 tree = QTreeView() #为控件添加模式 tree.setModel(model) tree.setWindowTitle('QTreeView例子') tree.show() sys.exit(app.exec_())
运行效果如下:
转载地址:http://ctozi.baihongyu.com/