2012-04-17 11 views
1

QTableWidgetItemの項目/行/列に「タグ」を設定する方法が不思議でした。例の場合、C#ではListview上でタグと呼ばれます。私はアイテムを各行にリンクする必要があるので、これが必要です。QTableWidgetタグの項目

ListViewItem.Tag = myObject; 

ありがとうございました。

答えて

3

これは、QTableWidgetItem::setData()とビットQVariantのマジックを使用して達成されます。たとえば、次のように

// Allow your object type to be converted to a QVariant: 
Q_DECLARE_METATYPE(ObjectType*); 

// Define a role to store your object under: 
const int ObjectRole = Qt::UserRole + 1; 

QTableWidgetItem *item = new QTableWidgetItem(); 
item->setData(ObjectRole, QVariant::fromValue(myObject)); 

してからオブジェクトを取得するには:

ObjectType *myObject = item->data(ObjectRole).value<ObjectType*>(); 

簡単でしょ? ;)

も参照してください:Q_DECLARE_METATYPEQVariant::fromValue()QVariant::value()

関連する問題