我想将附加数据与插入到表中的每个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/

10-12 22:17