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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlQuery + QComboBox  (Прочитано 2539 раз)
And_Y
Гость
« : Июнь 04, 2013, 09:40 »

Здравствуйте.
Прошу сильно не пинать, я только начинаю работать с Qt.
Открываю диалог, в котором отображается информация по выбранному элементу таблицы.
В нем присутствует как значения, которые хранятся в текущей таблице БД, так и идентификаторы связанных таблиц.

код:
Код:
        QSqlQuery parkQuery = QSqlQuery(db);
        parkQuery.prepare("SELECT * FROM parks WHERE id_client=:id_cl");
        parkQuery.bindValue(":id_cl",query.value(2).toInt());
        parkQuery.exec();

        parkModel = new QSqlQueryModel();
        parkModel->setQuery(parkQuery);
        ui->park->setModel(parkModel);
        ui->park->setModelColumn(2);

Комбобокс прекрасно отображает результаты запроса, которые хранятся в модели...
Но как мне установить текущее значение комбобокса чтобы оно было равно значению в базе?

Сложно наверное как то объяснил... Готов понести наказание :-)
Заранее спасибо всем откликнувшимся
Записан
Figaro
Гость
« Ответ #1 : Июнь 05, 2013, 05:10 »

Код:
QModelIndexList indexList = parkModel->match(parkModel->index(0, 2), Qt::DisplayRole, query.value(2));
if (!indexList.isEmpty())
    ui->park->setCurrentIndex(indexList.at(0).row());

Как-то так... Только проверьте колонки в "->index()"...
Записан
And_Y
Гость
« Ответ #2 : Июнь 06, 2013, 06:11 »

Спасибо большое. Помогло вроде :-)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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