@LexArd

QComboBox и БД, как получить ID?

ID я получаю вот таким образом:
....
Region= new QComboBox;   
qry.exec("SELECT * FROM region");
model->setQuery(qry);
Region->setModel(model);
Region->setModelColumn(3);

connect(Region, SIGNAL(currentTextChanged(QString)), SLOT(comboChange(QString)));

void MyWidget::comboChange(QString str)
{
    QSqlQuery qry1;
    qry1.prepare("SELECT region_id FROM region WHERE name=?");
    qry1.addBindValue(str);
    qry1.exec();
    int reg;
    while(qry1.next())
        reg = qry1.value(0).toInt();
    //qDebug() << reg;
    emit toRegion(reg);
}
.......

С моим нулевым опытом, мне кажется что это бред, хоть и както работающий. Подскажите как правильно.
  • Вопрос задан
  • 1234 просмотра
Решения вопроса 1
@vilgeforce
Раздолбай и программист
Используйте QComboBox::setItemData() при заполнении комбобокса: сможете добавить в элементы невидимые юзеру данные. В comboChange QComboBox::itemData() позволит их получать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kuzia6146
я бы использовал сигнал QComboBox::currentIndexChanged(int index), а в слоте обращался бы к модели в комбобоксе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы