![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
potkin |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 18.6.2010 Пользователь №: 1819 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Есть таблица "post":
Надо в "comboBox" отобразить поле "name", делаю так:
И надо, чтоб при выборе Итема в "comboBox" (поле "name") выбиралося и соответствующее ему значение "postID". Есть возможности реализовать такое в Qt. Потому что мне напрашивается только одно решение: Какой то целочисленный массив заполнить полем "postID", а в "comboBox" запихнуть поле "name" и связать их, например по порядковому номеру. Заранее спасибо. |
|
|
![]() |
MoPDoBoPoT |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
обязательное условие это то что postID должен быть autoincrement и номера в таблице должны идти строго по порядку, без разрывов. Слишком жёсткие ограничения, а то что выделено красным, для многопользовательского режима, выполнимо при определённых настройках сервера (если отключено кэширование значений последовательности). Мне не понятно, в чём, собственно, загвоздка, ведь в заполненой QSqlQueryModel находится вся необходимая информация (поля "name" и "postID" уже "связаны" номером строки в модели). Таким образом, чтобы узнать postID для данного (выбранного) имени, надо сделать примерно следующее:
Если хочется более универсального решения, то можно отнаследоваться от QComboBox и реализовать необходимый функционал: - bool setModel(QAbstractItemModel *model, int idColumn, int visibleColumn) - int currentId() - void currentIdChanged(int id) [signal] - ... Сообщение отредактировал MoPDoBoPoT - 5.9.2010, 22:44 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 4.6.2025, 14:48 |