我想将附加数据与插入表中的每个 QTableWidgetItem 相关联,以便将来在单击表项时使用该数据。但这些数据不应该是可见的。我怎样才能做到这一点?
您可以使用QTableWidgetItem::setData() http://doc.qt.io/qt-5/qtablewidgetitem.html#setData像这样:
setData(Qt::UserRole, myData); // set
Where myData
是一个支持的QVariant http://doc.qt.io/qt-5/qvariant.html类型。您可以使用QTableWidgetItem::data()
检索您存储的值。
如果您需要多个,您可以使用Qt::UserRole
+ 1、+ 2 等等(Qt::UserRole
是“第一个可用于特定于应用程序目的的角色。”,您可以阅读有关其他类型角色的更多信息here http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum).
如果您要存储 QVariant 本身不支持的自定义类型,您将需要向 Qt 元对象系统注册您的类型。看着Q元类型 http://doc.qt.io/qt-5/qmetatype.html了解更多详情。
如果你想存储一个整数,例如:
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)