2013-10-24 27 views
2

如何訪問TableViewColumn中的當前項目?如何訪問QML TableViewColumn委託中的數據?

TableView { 
    id: atcTableView 
    model: myatclist 
    ... 
    TableViewColumn { 
     ... 
    } 
    TableViewColumn { 
     id: atcTableViewColFreq 
     role: "frequency" 
     title: "Frequency" 
     width: 120 
     delegate: Component { 
      Text { 
       text: "Freq is " + currentItem/model/model.frequency 
      } 
     } 
    } 

由於這種類似的問題的 「How do you access the roles of the currentItem from a listview in QML?」 我已經嘗試了所有類型的組合modelmodelDatacurrentItem的,讓人覺得model.role

如果我完全刪除代表,頻率顯示正確。型號基於QAbstractListModel。任何提示?

順便說一句,我可以在QML中看到調試代理中可用的屬性嗎?

- 基於卡卡杜的評論編輯 -

 delegate { 
      Text { 
       text: "freq is " + frequency 
      } 
     } 

給我:ReferenceError: frequency is not defined

+1

我還沒有TableView中列,但直覺工作,說,你應該嘗試'frequency'你文本元素。對不起,如果我的猜測不起作用 – Kakadu

+0

上面更新的細節 –

回答

5
delegate: Text { text: view.model.get(styleData.row).frequency } 
2

嘗試使用styleData.value:

delegate: { 
    Text { text: styleData.value } 
} 

它描述here(尋找itemDelegate財產)

+0

請指定一個明確的問題。我們不知道你的意思。 – bump

3

你必須定義在QAbstractItemModel中的作用。

QHash YourClassModel ::角色名()const的{

roles[Qt::UserRole + 1] = "frequency"; 
return roles; 

}

+1

會嘗試並提供反饋 –