2012-04-17 43 views
1

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

ListViewItem.Tag = myObject; 

感谢您的任何帮助。

回答

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