QTableWidgetItemのitems/rows/columnsに「タグ」を設定するにはどうすればよいか疑問に思いました。たとえば、C#では、リストビューではタグと呼ばれます。アイテムを各行にリンクする必要があるため、これが必要です。
ListViewItem.Tag = myObject;
助けてくれてありがとう。
QTableWidgetItemのitems/rows/columnsに「タグ」を設定するにはどうすればよいか疑問に思いました。たとえば、C#では、リストビューではタグと呼ばれます。アイテムを各行にリンクする必要があるため、これが必要です。
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()