2013-03-15 23 views
0

我得到了一個帶有標識符和相應對象的QMap。當繼承QAbstractTableModel :: data()時,您分別獲得了具有行和列的QModelIndex。每行應該代表一個對象(QAbstractTableModel :: rowCount()是myMap-> size())。如何在QAbstractTableModel :: data()中正確訪問QMap

它是合法的通過

myMap->values().at(index.row()) 

得到當前對象有這個問題(排序,插入),因爲(未分類)地圖的標識符繞過?我的意思是爲QAbstractTableModel :: setData()我需要做相同的地圖標識符旁路?!謝謝。

回答

-1

QMap::values以按鍵的升序返回所有值,因此可能您的代碼將工作。不過,我會使用類似以下內容:

myMap[this->index(index.row(), 0).data().toString()] 

只要你從QAbstractTableModel調用它,你的鑰匙在第0列。

0

當你說「標識符」,我假定你的意思關鍵,而「相應的對象」是QMap是按鍵定義的。

如果您從不打算使用QMap鍵值功能,則應考慮將值存儲在QList容器中,並根據您的建議訪問基於行索引的值。