项目上的QTableWidget标记

时间:2012-04-17 21:41:44

标签: qt tags qtablewidget

我想知道如何在QTableWidgetItem上的items / rows / columns上设置'tag'。例如,在C#中,它被称为Listview上的标记。我需要这个,因为我需要将一个项链接到每一行。

ListViewItem.Tag = myObject;

感谢您的帮助。

1 个答案:

答案 0 :(得分: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()