Russian Qt Forum
Май 04, 2024, 20:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QComboBox & Model\View  (Прочитано 4057 раз)
NKovalev64
Гость
« : Апрель 20, 2014, 20:19 »

Есть QComboBox, с примененной к нему QSqlQueryModel моделью (из 2 столбцов).
Мне нужно что бы один из столбцов отображался, а значение другого я бы мог получить из значения первого. Т.е. например модель содержит названия и id's чего-либо, названия отображаются в комбобоксе, а id нужно получить.
Модель к боксу я применил, нужную колонку для отображения выставил, а вот как узнать индекс текущего выбранного элемента и по нему вычислить значение второго столбца?
Записан
OKTA
Гость
« Ответ #1 : Апрель 21, 2014, 10:16 »

разве не помогает?

Цитировать
currentIndex : int
This property holds the index of the current item in the combobox.
The current index can change when inserting or removing items.
By default, for an empty combo box or a combo box in which no current item is set, this property has a value of -1.
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #2 : Апрель 21, 2014, 10:33 »

Код
C++ (Qt)
QSqlQueryModel *_model = qobject_cast<QSqlQueryModel *>(ui.comboBox->model());
if (!_model)
  return;
QSqlRecord _rec = _model->record(ui.comboBox->currentIndex());
int _id = _rec.value(_rec.indexOf("id")).toInt();
Записан
NKovalev64
Гость
« Ответ #3 : Апрель 21, 2014, 18:59 »

Код
C++ (Qt)
QSqlQueryModel *_model = qobject_cast<QSqlQueryModel *>(ui.comboBox->model());
if (!_model)
  return;
QSqlRecord _rec = _model->record(ui.comboBox->currentIndex());
int _id = _rec.value(_rec.indexOf("id")).toInt();

Большое спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.195 секунд. Запросов: 23.