7

我想将附加数据与插入到表中的每个 QTableWidgetItem 相关联,以便将来在单击表项时使用该数据。但是这些数据不应该是可见的。我怎样才能做到这一点?

4

2 回答 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 回答