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