Qt4, QComboBox и QItemSelectionModel (прокрутка элементов колесиком мыши не изменяет выделение)

Модератор: Модераторы разделов

Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Qt4, QComboBox и QItemSelectionModel

Сообщение Atragor »

Ситуация такая: есть QSqlQueryModel, выбирающая из базы данных все доступные языки, эта модель установлена на QComboBox, а на view() этого QComboBox'а установлена QItemSelectionModel:

Код: Выделить всё

m_ui->languagesBox->setModel(Database::instance()->availableLanguagesModel());
m_ui->languagesBox->view()->setSelectionModel(Database::instance()->languageSelectionModel());


По идее пользователь выбирает из списка язык и нажимает кнопку, при этом вызывается метод Database::setCurrentLanguage(), который смотрит, что выбрано в QItemSelectionModel, и, соответственно, устанавливает нужный язык.
Проблема заключается в том, что если выбирать элемент QComboBox'а обычным способом - то есть нажатием на него и выбором из появившегося списка - вся эта конструкция работает, но если листать элементы мышью или стрелками на клавиатуре, QItemSelectionModel не обновляется. У QComboBox'а есть сигнал, высылаемый при изменении текущего индекса, он срабатывает при любом способе выбора элемента, но для его использования надо как-то связать текущий индекс с ID языка в базе данных. Есть ли более простой способ отследить выделение элементов?
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
Спасибо сказали: