QT - 将自己的列添加到QFileSystemModel
答
我会通过继承模型,提供额外的列和数据提供给它启动。
所以至少我会重新实现columnCount()和data()在这两种情况下调用基类和操作相应的结果。
class yourSystemModel : public QFileSystemModel
{
Q_OBJECT
int columnCount(const QModelIndex& parent = QModelIndex()) const
{
return QFileSystemModel::columnCount()+1;
}
QVariant data(const QModelIndex& index,int role) const
{
if(!index.isValid()){return QFileSystemModel::data(index,role);}
if(index.column()==columnCount()-1)
{
switch(role)
{
case(Qt::DisplayRole):
{return QString("YourText");}
case(Qt::TextAlignmentRole):
{return Qt::AlignHCenter}
default:{}
}
}
return QFileSystemModel::data(index,role);
}
}
官方文档大纲一定的基础,以重新实现最小为抽象项目的模式,但在这种情况下,你可以用少得多的逃跑。 http://doc.qt.digia.com/stable/qabstractitemmodel.html - 子类化部分。
谢谢!这是我需要的。但一个解决方案:我需要检查索引父(treeview模型),所以工作示例是:if(index.column()== columnCount(index.parent()) - 1) – Dibo 2013-02-20 10:27:45