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

时间:2014-08-22 17:00:23

标签: c++ qt qt5 hidden-field 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());
}

可以这样做吗?

2 个答案:

答案 0 :(得分:1)

使用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 :(得分:0)

创建自己的类,该类继承自QListWidgetItem,您要隐藏的数据将是您班级的成员。