Russian Qt Forum

Qt => Model-View (MV) => Тема начата: And_Y от Июнь 04, 2013, 09:40



Название: QSqlQuery + QComboBox
Отправлено: 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);

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

Сложно наверное как то объяснил... Готов понести наказание :-)
Заранее спасибо всем откликнувшимся


Название: Re: QSqlQuery + QComboBox
Отправлено: Figaro от Июнь 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()"...


Название: Re: QSqlQuery + QComboBox
Отправлено: And_Y от Июнь 06, 2013, 06:11
Спасибо большое. Помогло вроде :-)