QTreeView变换列名称

2024-04-20 12:35:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用QTreeView和QFileSystemModel。如何更改列名?在

这是我的代码示例:

startDir = "/home/abusquets/cads"
filter = ["*.dxf"]

model = QtGui.QFileSystemModel()
model.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot | QDir.AllEntries)
model.setRootPath(startDir)

#Només volem fitxers dxf
model.setNameFilters(filter)
model.setNameFilterDisables(0)

tree = QtGui.QTreeView()
tree.setModel(model)
tree.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)

tree.setRootIndex(model.index(startDir)) 
self.setCentralWidget(tree)

Tags: 代码tree示例homedxfmodelfilterqtgui
2条回答

谢谢尤仁臣。在

我是这样解决的:

class MyQFileSystemModel(QtGui.QFileSystemModel):

    def headerData(self, section, orientation, role):
        if section == 0 and role == Qt.DisplayRole:
            return "Nom"
        else:
            return super(QtGui.QFileSystemModel, self).headerData(section, orientation, role)

在QStandardItemModel中,可以执行以下操作:

model->setHeaderData(0,Qt::Horizontal, " -header0 -");

但是,在QFileSystemModel中

^{pr2}$

重新实现了。在

方法1

您需要从QFileSystemModel继承一个新类,然后重新实现

headerData()。在

方法2

使用委托模型

方法3

独立设置收割台型号。在

QStandardItemModel *model1=new QStandardItemModel(0,5,this);

model1->setHeaderData(0, Qt::Horizontal, "header0");
model1->setHeaderData(1, Qt::Horizontal, "header1");

tree->header()->setModel(model1);

最后一种方法最简单。在

相关问题 更多 >