QTableView に表示したい項目の QHash があります。だから私はモデルが必要です。MyClass には、マップへの挿入に使用される内部 ID があります。このようなもの:
// when adding a new item
my_super_hash[item->id] = item;
モデルを実装すると、モデル内のすべてのメソッドがクリックされた「インデックス」(または何でも...) について話していることがわかりました。
QHash とモデルをマッピングする方法を教えてもらえますか? (キーベースの QHash で、モデルはインデックスベースです)。
オプション 1 - 理想的ではない
1 つのオプションは、起動時にインデックスとキーの間をマップするリストを作成することです。
int i = 0;
foreach( MyClass* c, my_super_hash )
conversion[i] = c->id
モデルの再実装メソッドの中で、私は使用します
int key = conversion[index.row()];
MyClass * value = my_super_hash[key];
このアイデアは厄介に思えます。より良い実装が必要です。