1
QTableWidgetItemの項目/行/列に「タグ」を設定する方法が不思議でした。例の場合、C#ではListview上でタグと呼ばれます。私はアイテムを各行にリンクする必要があるので、これが必要です。QTableWidgetタグの項目
ListViewItem.Tag = myObject;
ありがとうございました。
QTableWidgetItemの項目/行/列に「タグ」を設定する方法が不思議でした。例の場合、C#ではListview上でタグと呼ばれます。私はアイテムを各行にリンクする必要があるので、これが必要です。QTableWidgetタグの項目
ListViewItem.Tag = myObject;
ありがとうございました。
これは、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_METATYPE、QVariant::fromValue()、QVariant::value()