Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
项目上的QTableWidget标记_Qt_Tags_Qtablewidget - Fatal编程技术网

项目上的QTableWidget标记

项目上的QTableWidget标记,qt,tags,qtablewidget,Qt,Tags,Qtablewidget,我想知道如何在QTableWidgetItem上的项/行/列上设置“标记”。对于exmaple,在C#中,它被称为Listview上的标记。我需要这个,因为我需要将一个项目链接到每一行 ListViewItem.Tag = myObject; 感谢您的帮助。这将通过使用和一点QVariantmagic来完成。例如: // Allow your object type to be converted to a QVariant: Q_DECLARE_METATYPE( ObjectType* )

我想知道如何在QTableWidgetItem上的项/行/列上设置“标记”。对于exmaple,在C#中,它被称为Listview上的标记。我需要这个,因为我需要将一个项目链接到每一行

ListViewItem.Tag = myObject;

感谢您的帮助。

这将通过使用和一点
QVariant
magic来完成。例如:

// 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*>();
ObjectType*myObject=item->data(ObjectRole.value();
容易吧?;)

另见: