我可以扩展QFileSystemModel并使用text / icon添加新列吗?
此致
答案 0 :(得分:4)
我将从继承模型开始,提供附加列并向其提供数据。
所以至少我会在调用基类并相应地操作结果的情况下重新实现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 - 子类化部分。