1

我想知道如何在 QTableWidgetItem 上的项目/行/列上设置“标签”。例如,在 C# 中,它被称为 Listview 上的标签。我需要这个,因为我需要将一个项目链接到每一行。

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 回答