我想将附加数据与插入到表中的每个QTableWidgetItem关联,以便将来在单击表项时使用该数据。但是这些数据应该不可见。我怎样才能做到这一点?
最佳答案
您可以这样使用 QTableWidgetItem::setData()
:
setData(Qt::UserRole, myData); // set
其中
myData
是受支持的QVariant类型。您可以使用QTableWidgetItem::data()
检索您存储的值。如果您需要多个,则可以使用
Qt::UserRole
+ 1,+ 2,依此类推(Qt::UserRole
是“可以用于特定于应用程序的目的的第一个角色。”,您可以阅读有关here的其他角色的更多信息)。 。如果要存储QVariant本身不支持的自定义类型,则需要在Qt元对象系统中注册您的类型。查看QMetaType以获得更多详细信息。
如果要存储整数,例如:
QTableWidgetItem* widgetItem = tableWidget->item(row, col); // get the item at row, col
int myInteger = 42;
widgetItem->setData(Qt::UserRole, myInteger);
// ...
myInteger = widgetItem->data(Qt::UserRole);
关于Qt-如何将数据与QTableWidgetItem相关联?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2579579/