Я создал рабочий 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 :: УстановитьДанные () с пользовательским идентификатором роли.
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 :: DisplayRole).