-1

我创建了一个包含多个项目的工作 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();

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

4

2 回答 2

2

只需使用带有自定义角色 ID 的QAbstractItemModel::setData() 。

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
于 2012-12-09T18:16:46.807 回答
1

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

于 2012-12-09T17:29:42.587 回答