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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: подвязка содержимого в combobox и условие отбора нужной информации  (Прочитано 1567 раз)
lexflax
Гость
« : Январь 05, 2014, 05:14 »

Добрый день.
 Мне в моем приложении осталось 2 важных пункта сделать но пожалуй самых тяжелых ...
 Подскажите как реализовать:
 В целом - есть таблица "специальности вуза" состоит из полей
 код вуза название специальности краткое наименование
 52212 Автомобильные дороги АД


 В приложении , на форме пользователь из combobox выбирает код вуза, наименивание специальности и краткое наименование...
 Вся эта информация в комбобокс попадает из сравочника vuzsp или подругому таблица "специальности вуза" которая была описана выше...
 сейчас в 3 комбабокса в которые выгружается вся информация полностью заполняя комбобоксы, а нужно чтоб
 в первый комбобокс где коды инфа так же выгружалась вся... а два остальных которые содержат название специальности и краткое наименование заполнялись автоматически...
 Допустим если я в первом комбобоксе выбрал код 52212 то в два нижних заполнились информацией "Автомобильные дороги" и "АД" и не давало выбрать из списка другие варианты пока другой код не выберу...
Записан
lexflax
Гость
« Ответ #1 : Январь 06, 2014, 12:17 »

сделал так:
Необходимо соединить сигнал, отправляемый при изменении значения в комбобоксе, с собственным слотом:
Код:
QSqlQueryModel *kodVuzaModel = new QSqlQueryModel(ui->comboBox_3);
kodVuzaModel->setQuery("SELECT kodsv FROM vuzsp");
ui->comboBox_3->setModel(kodVuzaModel);
connect(ui->comboBox_3, SIGNAL(currentIndexChanged(QString)), this, SLOT(onCollegeChanged(QString)));
Реализация
Код:
void onCollegeChanged(const QString &college) {
    // Обновляется название специальности
    QSqlQueryModel *NamespvModel = new QSqlQueryModel(ui->comboBox_4);
    NamespvModel->setQuery(QString("SELECT namespv FROM vuzsp WHERE kodsv = %1").arg(college));
    ui->comboBox_4->setModel(NamespvModel);
 
 
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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