2013-02-19 60 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

相關問題