2012-04-17 45 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()