2017-02-21 4 views
0

QTableViewでは、各行にいくつかのメタデータを追加しようとしています。明らかな解決策は、最後の列にQt::UserRoleを使用することです。このようなもの。QTableview行のメタデータ

QStandardItemModel* model = new QStandardItemModel(); 
QStandardItem* item = new QStandardItem(); 
item->setData("Hello", Qt::DisplayRole); 
item->setData(rowMetadata, Qt::UserRole); 
model->setItem(ROW_0, COL_0, item); 
// Getting the metadata as follows 
model->data(model->index(ROW_0, COL_0), Qt::UserRole); 

何かが間違っていると感じます。 これ以上の直感的なソリューションはありますか?

答えて

0

QAbstractItemModelをサブクラス化して独自の内部モデルを構築し、好きなようにメタデータを格納することができます。 QStandardItemModelがうまくいけば、これはあなたがすでにやっていることに固執するよりもうまくいくかもしれません。

私が考えることのできる別の可能性は、あなたの既存のQStandardItemModelQSortFilterProxyModelを使用することです。基本モデルでは、メタデータを余分な列として保存してから、プロキシで表示することができます。

+0

ありがとうございます!第二の解決策は、私が持っているものです。しかし、 "きれいな"方法に気づくのは良いことです。 –

関連する問題