2013-02-19 102 views

回答

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 - 子类化部分。

+0

谢谢!这是我需要的。但一个解决方案:我需要检查索引父(treeview模型),所以工作示例是:if(index.column()== columnCount(index.parent()) - 1) – Dibo 2013-02-20 10:27:45

相关问题