crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Идентификация элемента списка
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.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.12.2024, 11:12