可以通过使用QAbstractItemModel类来设置Qt的QTreeView头部为父节点名称。以下是一个示例:
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class TreeModel(QAbstractItemModel):
def __init__(self, data, parent=None):
super().__init__(parent)
self.rootItem = TreeItem(("Name",))
self.setupModelData(data.split('\n'), self.rootItem)
def columnCount(self, parent):
if parent.isValid():
return parent.internalPointer().columnCount()
else:
return self.rootItem.columnCount()
def data(self, index, role=Qt.DisplayRole):
if not index.isValid():
return None
if role != Qt.DisplayRole and role != Qt.EditRole:
return None
item = index.internalPointer()
return item.data(index.column())
def flags(self, index):
if not index.isValid():
return Qt.NoItemFlags
return super().flags(index) | Qt.ItemIsE

通过QAbstractItemModel类,可以将Qt的QTreeView的header设置为树形结构的父节点名称。示例中,我们创建了TreeModel并重写headerData()方法,用父节点名作为列头。在setupModelData()中添加数据,利用TreeItem的insertChildren()方法实现自定义树形视图。
最低0.47元/天 解锁文章
694

被折叠的 条评论
为什么被折叠?



