QListWidget

QListWidget

本文关键字:QListWidget      更新时间:2023-10-16

我创建了一个包含多个项目的工作QListWidget,但我不知道如何使其用户友好。它看起来像这样:

1000
1001
1002
...

但我希望它看起来像这样,其中 4 个数字具有含义,而其余所有信息仅供用户使用。

1000 Name LastName and some other helpful info
1001 tom jeff smallville
1002 ming vase, 1992
...

例如,此行

fotoId = ui->devices->currentItem()->text().toInt();

在这两种情况下应该给我相同的结果。

只需将 QAbstractItemModel::setData() 与自定义角色 ID 一起使用即可。

const int CustomRole = Qt::UserRole + 1; // enum should be better for multiple user role
...
// set values
listWidget->model()->setData(index1, 1000, CustomRole);
listWidget->model()->setData(index2, 1000, CustomRole);
...
// get value
int value = listWidget->model()->data(index1, CustomRole).toInt(); // should be 1000

您需要存储字符串,因为它要在小部件中显示,并在检索时解析结果,或者自己实现 data() 方法(使用 Qt::D isplayRole)。