是否可以为 qlistWidget 的每个项目添加隐藏值

Lio*_*ing 3 c++ qt hidden-field qt5 qlistwidgetitem

是否有可能为 . 的每一项添加隐藏价值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());
}
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

fxa*_*xam 5

使用 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>();
Run Code Online (Sandbox Code Playgroud)