我想将附加数据与插入到表中的每个 QTableWidgetItem 相关联,以便将来在单击表项时使用该数据。但是这些数据不应该是可见的。我怎样才能做到这一点?
问问题
23970 次
2 回答
21
你可以QTableWidgetItem::setData()
这样使用:
setData(Qt::UserRole, myData); // set
myData
支持的QVariant类型在哪里。您可以使用它QTableWidgetItem::data()
来检索您存储的值。
如果您需要多个角色,则可以使用Qt::UserRole
+ 1、+ 2 等(是“可用于特定于应用程序目的的第一个角色。”,您可以在此处Qt::UserRole
阅读有关其他类型角色的更多信息)。
如果您要存储 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);
于 2010-04-05T16:48:47.613 回答
6
您可以从 QTableItem 派生并提供您自己的数据成员,或者您可以将 QTableView 与您自己的模型一起使用。
于 2010-04-05T16:49:35.100 回答