1

QTableWidgetItemのitems/rows/columnsに「タグ」を設定するにはどうすればよいか疑問に思いました。たとえば、C#では、リストビューではタグと呼ばれます。アイテムを各行にリンクする必要があるため、これが必要です。

ListViewItem.Tag = myObject;

助けてくれてありがとう。

4

1 に答える 1

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()

于 2012-04-17T23:27:28.440 に答える