我想知道如何在 QTableWidgetItem 上的项目/行/列上设置“标签”。例如,在 C# 中,它被称为 Listview 上的标签。我需要这个,因为我需要将一个项目链接到每一行。
ListViewItem.Tag = myObject;
谢谢你的帮助。
我想知道如何在 QTableWidgetItem 上的项目/行/列上设置“标签”。例如,在 C# 中,它被称为 Listview 上的标签。我需要这个,因为我需要将一个项目链接到每一行。
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()