c ++ - QListWidget

时间:2012-12-09 17:02:08

标签: c++ qt qlistwidget

我创建了一个包含多个项目的工作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();
在这两种情况下,

应该给我相同的结果。

2 个答案:

答案 0 :(得分:2)

只需将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

答案 1 :(得分:1)

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