Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/57: Рейтинг темы: голосов - 57, средняя оценка - 4.58
belirafor
4 / 4 / 1
Регистрация: 08.01.2011
Сообщений: 46
1

Событие при смене Item в comboBox

30.03.2011, 20:26. Просмотров 10436. Ответов 11
Метки нет (Все метки)

Привет всем участникам форума. Пишу курсовую, возникла такая проблема.

Имеется два comboBox.
  1. comboBoxDepartments - Хранит информацию об отделах
  2. comboBoxPosts - Хранит информацию о должностях, соответствующих отделам

Оба бокса получают данные из БД. Таблицы связаны внешними ключами. Нужно, чтобы при выборе некоторого отдела в comboBoxDepartments в comboBoxPosts отображались только те должности, которые соответствуют отделам.

Пытался сделать упрощенное событие типа:
Имеется один комбобокс с четырьмя Items. При выборе одного из них должно выскакивать QMessageBox с названием текущего выбранного элемента бокса.

Если у кого есть идеи подскажите... Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2011, 20:26
Ответы с готовыми решениями:

Как у QTreeview поймать событие клика по пустой области (не по Item)?
Добрый день! Требуется при нажатии пользователем в пустой области QTreeView...

ComboBox. Как узнать индекс при изменении состояния ComboBox
Здравствуйте, возник вопрос касательно ComboBox. В реалиях выполняемой задачи...

Не нормальное поведение при смене языка программы
Прописал возможность смены языка. void MainWindow::changeTranslator(QString...

QComboBox при создании item добавлять кроме текста действие
Работаю с mysql. Комбобокс заполняю "именами" QSqlQuery sc_dispatcher; ...

Двойной клик по QTreeView / Изменение иконки при раскрытии Item'a
Здравствуйте, у меня есть три вопроса касательно QTreeView. 1) Как отключить...

11
dxdy
97 / 97 / 14
Регистрация: 14.06.2010
Сообщений: 284
30.03.2011, 22:27 2
вам нужно посмотреть папку sql в примерах Qt. Там есть примеры реализации данной конструкции...
0
Koste
26 / 26 / 0
Регистрация: 04.03.2011
Сообщений: 164
30.03.2011, 22:59 3
Делай обработку данных SQL-сервером! А в комбо бокс только выводи результат
0
belirafor
4 / 4 / 1
Регистрация: 08.01.2011
Сообщений: 46
31.03.2011, 20:24  [ТС] 4
Цитата Сообщение от Koste Посмотреть сообщение
Делай обработку данных SQL-сервером! А в комбо бокс только выводи результат
Обработка так и происходит! Само событие мне нужно. Сейчас пытаюсь делать.
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
01.04.2011, 14:28 5
В событии OnChange первого Combo щупаешь comboBoxDepartments->ItemIndex, на основании значения с нуля заполняешь comboBoxPosts

Добавлено через 1 минуту
Цитата Сообщение от dxdy Посмотреть сообщение
вам нужно посмотреть папку sql в примерах Qt. Там есть примеры реализации данной конструкции...
Цитата Сообщение от Koste Посмотреть сообщение
Делай обработку данных SQL-сервером! А в комбо бокс только выводи результат
Извините, не удержался. Вы постановку вопроса читали полностью или только первые две строки?
0
oxotnik
1625 / 1098 / 75
Регистрация: 21.08.2008
Сообщений: 4,619
Записей в блоге: 1
01.04.2011, 14:41 6
справка в Qt наверное нафиг никому не нужна...
Код
void QComboBox::currentIndexChanged ( int index)   [signal]
void QComboBox::currentIndexChanged ( const QString &text)   [signal]
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
01.04.2011, 15:49 7
Пипец я тупой... Мне показалось, что тема в Borland'овском разделе...
0
dxdy
97 / 97 / 14
Регистрация: 14.06.2010
Сообщений: 284
01.04.2011, 16:19 8
Цитата Сообщение от Evg Посмотреть сообщение
Извините, не удержался. Вы постановку вопроса читали полностью или только первые две строки?
И что вы хотели этим сказать? belirafor хотел связать QComboBox и Sql. В примерах Qt есть реализация через QSqlRelationalTableModel.
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
01.04.2011, 16:25 9
Цитата Сообщение от dxdy Посмотреть сообщение
И что вы хотели этим сказать? belirafor хотел связать QComboBox и Sql. В примерах Qt есть реализация через QSqlRelationalTableModel.
Он всего лишь хотел понять, как поймать ситуацию изменения текущего значения на combobox'е. И специально написал "Имеется один комбобокс с четырьмя Items. При выборе одного из них должно выскакивать QMessageBox с названием текущего выбранного элемента бокса". Про базу данных он упомянул, чтобы вообще было понятно, о чём речь идёт
0
belirafor
4 / 4 / 1
Регистрация: 08.01.2011
Сообщений: 46
02.04.2011, 21:50  [ТС] 10
Народ, есть пример использования данной ситуации? А то с примерами в QT не могу пока что разобраться... Точнее не могу найти тот кусок кода, который отслеживает изменения в ComboBox. Это пример с аудиотекой.
0
belirafor
4 / 4 / 1
Регистрация: 08.01.2011
Сообщений: 46
05.04.2011, 12:29  [ТС] 11
Проблему решил следующим образом:
C++
1
2
3
4
5
6
ui->comboBoxDepartments->clear();   
    ui->comboBoxDepartments->insertItem(0, allPosts);
    ui->comboBoxDepartments->insertItem(1,"aaa");
    ui->comboBoxDepartments->insertItem(2,"bbb");
 
connect(ui->comboBoxDepartments, SIGNAL(currentIndexChanged(QString)), SLOT(showPosts()));
Далее метод:
C++
1
2
3
4
5
6
7
8
void DialogManagePosts::showPosts()
{
if(ui->comboBoxDepartments->currentText() == "bbb")
    {
    QMessageBox::information(this, tr("bbb"), tr("bbb"));
    }
    else{qDebug() << tr("Заглушка");}
}
Всем Спасибо! Тема закрыта!
1
flax
8 / 8 / 1
Регистрация: 31.03.2010
Сообщений: 32
05.04.2011, 13:27 12
для первого комбобокса создаешь событие OnCbnSelchangeCombo
и внутри этой функции

m_comZakazchik.GetLBText(m_comZakazchik.GetCurSel(),str);
query.Format("select id from itak_zakazchik where zakazchik_name='%s'",str);
if (mysql_query(mysql,query)!=0)
{
MessageBox("Ошибочный запрос!!!");
return ;
}
res = mysql_store_result(mysql);
while((row = mysql_fetch_row(res)))
{
query.Format("select product_name from itak_product where id_zakazchik=%s",row[0]);
if (mysql_query(mysql,query)!=0)
{
MessageBox("Ошибочный запрос!!!");
break ;
}
res2 = mysql_store_result(mysql);
while((row2 = mysql_fetch_row(res2)))
m_pcomNumProduct[0].InsertString(0,row2[0]);
}


и тебе будет заполнение второго комбобокса от результата первого
0
05.04.2011, 13:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2011, 13:27

Qt Creator зависает при смене языка набора текста! (Windows 7 x64)
Здравствуйте стоит Qt Creator 2.6.0 и Windows 7 x64, также установлен Punto...

Не отображаются иконки и перевод меню при смене типа конфигурации на ".lib"
Добрый день! Я хотел бы Qt-часть своего приложения организовать как &quot;.lib&quot; и...

Событие при закрытии окна
На главной форме есть кнопка, которая создает диалог: ... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru