我想知道如何在QTableWidgetItem上的items / rows / columns上设置'tag'。例如,在C#中,它被称为Listview上的标记。我需要这个,因为我需要将一个项链接到每一行。
ListViewItem.Tag = myObject;
感谢您的帮助。
答案 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_METATYPE,QVariant::fromValue(),QVariant::value()