Идентификация элемента списка |
Здравствуйте, гость ( Вход | Регистрация )
Идентификация элемента списка |
rcdimon |
19.11.2009, 22:05
Сообщение
#1
|
Студент Группа: Участник Сообщений: 69 Регистрация: 27.10.2009 Пользователь №: 1183 Спасибо сказали: 1 раз(а) Репутация: 0 |
Возможно глупый вопрос, но я пока не нашел на него ответа.
Есть у меня элемент списка QListWidget. Я создаю SQL запрос и заполняю его элементами из ответа базы данных. Например мне возвращается ответ id Name 1 Петя 2 Вася 3 Алеша Когда я добавляю элементы в список я использую метод insertItem(name); А когда я отлавливаю выбор элемента списка, то хочу получить id а не name элемента- для дальнейших операций с БД. name не является уникальным, первичный ключ - id. Вот собственно вопрос куда записать этот id, чтобы он не был виден в списке (только имена должны быть видны), но чтобы при выборе пользователем элемента списка подпрограмма обработки получала бы id. |
|
|
Rocky |
19.11.2009, 23:05
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
имхо тогда нужно использовать QListView (ну или QTableView) и смотреть в сторону моделей... Если нет то можно использовать QTableWidget и скрывать от пользователя ненужные столбцы. Но с базами намного проще и правильнее работать именно через модели.
Сообщение отредактировал Rocky - 19.11.2009, 23:06 |
|
|
MoPDoBoPoT |
19.11.2009, 23:17
Сообщение
#3
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Содать QListWidgetItem и методом QListWidgetItem::setData задать данные (для отображаемой строки передать роль Qt::DisplayRole, а для id - Qt::UserRole). После воспользоваться методом QListWidget::insertItem(int row, QListWidgetItem *item).
Ну а вообще, как сказал Rocky, проще и быстродейтсвенней использовать QSqlQueryModel/QSqlTableModel. |
|
|
Текстовая версия | Сейчас: 23.12.2024, 11:26 |