欲插入到表与每个QTableWidgetItem附加数据,以便使用在未来的数据相关联,被点击的表项时,它被。但是,这些数据应该是不可见。我该怎么办呢?

有帮助吗?

解决方案

可以使用 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);

其他提示

您可以从派生的QTableItem,并提供自己的数据成员,或者您可以使用QTableView中有你自己的模型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top