QTreeView 更改列名
QTreeView change column name
我正在使用 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)
在QStandardItemModel中,你可以做到:
model->setHeaderData(0,Qt::Horizontal, "---header0---");
但是,在 QFileSystemModel 中,
headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const
已重新实现。
方法一
你需要一个新的class继承自QFileSystemModel,并重新实现
headerData()
再一次。
方法二
使用委托模型
方法 3
独立设置页眉模型。
QStandardItemModel *model1=new QStandardItemModel(0,5,this);
model1->setHeaderData(0, Qt::Horizontal, "header0");
model1->setHeaderData(1, Qt::Horizontal, "header1");
tree->header()->setModel(model1);
最后一种方法最简单
谢谢yurenchen
我是这样解决的:
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)
我正在使用 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)
在QStandardItemModel中,你可以做到:
model->setHeaderData(0,Qt::Horizontal, "---header0---");
但是,在 QFileSystemModel 中,
headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const
已重新实现。
方法一
你需要一个新的class继承自QFileSystemModel,并重新实现
headerData()
再一次。
方法二
使用委托模型
方法 3
独立设置页眉模型。
QStandardItemModel *model1=new QStandardItemModel(0,5,this);
model1->setHeaderData(0, Qt::Horizontal, "header0");
model1->setHeaderData(1, Qt::Horizontal, "header1");
tree->header()->setModel(model1);
最后一种方法最简单
谢谢yurenchen
我是这样解决的:
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)