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

标签 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());
}

这样做有可能吗?

最佳答案

使用 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>();

关于c++ - 是否可以为 qlistWidget 的每个项目添加隐藏值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25452125/

相关文章:

c++ - C++ 标准中的哪一段验证了以下示例中使用的表达式 `sizeof(S::m + 42)`?

c++ - 无法链接 libcurl。(Dev-C++)

c++ - 按概率对 if...else if 语句进行排序的效果是什么?

c++ - 在测试用例中读取 qdebug?

qt - 在新 Mac 上启动并运行 Qt5

qt - 中心QML ListView高亮显示的项目

c++ - *(int*)(buffer) 是什么意思?

Qt - Pyside - .saveGeom() .saveState() (再次)

c++ - 如何从 QString 获取 const char *

c++ - Qt5 QuickView 无法创建窗口 : no screens are available