QT - Как связать данные с QTableWidgetItem?

Я хочу связать дополнительные данные с каждым QTableWidgetItem, введенным в таблицу для использования тех данных в будущем, когда это нажимается на объекте таблицы. Но те данные не должны быть видимы. Как я могу сделать это?

7
задан Narek 11 April 2011 в 06:38
поделиться

2 ответа

Вы можете использовать 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);
21
ответ дан 6 December 2019 в 06:49
поделиться

Вы можете унаследовать от QTableItem и предоставить свой собственный член данных, или вы можете использовать QTableView со своей собственной моделью.

5
ответ дан 6 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: