Можно ли добавить скрытое значение к каждому элементу qlistWidget?

Можно ли добавить скрытое значение для каждого элемента qlistWidget,
Я получаю данные из базы данных и добавляю их в qlistWidget,

Я хочу назначить id каждой строки в качестве скрытых данных для каждого элемента в qlistWidget чтобы использовать его в будущем, как тег HTML <input type="hidden" name="id" value="15" />,

Ниже приведен код, который получает данные из базы данных.

QSqlQuery qry;
qry.prepare("SELECT * FROM users");
qry.exec();
while(qry.next()){
ui->listWidget->addItem(qry.value("username").toString());
}

Возможно ли это сделать?

0

Решение

Используйте setData () и data (). Пример:

// set data
auto *item = new QListWidgetItem(qry.value("username").toString());
QVariant v;
v.setValue(qry.value("id").toInt());
item->setData(Qt::UserRole, v);
ui->listWidget->addItem(item);

// get back the data
QVariant v = item->data(Qt::UserRole);
int id = v.value<int>();
1

Другие решения

Создайте свой собственный класс, который наследуется от QListWidgetItem, и данные, которые вы хотите скрыть, будут членами вашего класса.

0

По вопросам рекламы [email protected]