Название: Формирование ComboBox, с учетом выбранных параметров из другого ComboBox Отправлено: SpaceRabbit от Декабрь 12, 2012, 08:19 Здравствуйте, подскажите пожалуйста, как мне реализовать комбобоксы, значения которых формируются в зависимости от выбранных значений в предыдущем комбобоксе.., к примеру, у меня есть 4 комбо:
Режим Устройство Сигнал Скорость Задача: в зависимости от выбранного режима, выводится список устройств. То или иное устройство может работать с различными типами сигналов, и в зависимости от сигнала на различной скорости.. Схематично это примерно так: Код: (combo_Режим) Я сделал слот, который в зависимости от Режима(combo_Режим) добавляет в combo_Устройство список элементов.. но это наверное не правильно, потому как кол-во устройств может быть различным, одно и тоже устройство может иметь разный индекс в списке.. Название: Re: Формирование ComboBox, с учетом выбранных параметров из другого ComboBox Отправлено: ssoft от Декабрь 12, 2012, 08:45 1. Можно формировать выпадающие списки вручную, обрабатывая события выбора элементов в них.
2. Можно сформировать одну модель данных и использовать QSortFilterProxyModel для каждого выпадающего списка. Оба способа правильные, только: - первый способ проще в реализации. - над вторым имеет смысл возится при большом количестве элементов или, если состав списка известен только на этапе выполнения программы. Название: Re: Формирование ComboBox, с учетом выбранных параметров из другого ComboBox Отправлено: SpaceRabbit от Декабрь 12, 2012, 08:53 1. Можно формировать выпадающие списки вручную, обрабатывая события выбора элементов в них. Спасибо, а можно ссылку или пример? Событие выбора - это какое? И как формируется эта модель?2. Можно сформировать одну модель данных и использовать QSortFilterProxyModel для каждого выпадающего списка. Название: Re: Формирование ComboBox, с учетом выбранных параметров из другого ComboBox Отправлено: kambala от Декабрь 12, 2012, 12:22 1. void QComboBox::currentIndexChanged ( int index ) [signal] или void QComboBox::currentIndexChanged ( const QString & text ) [signal]
2. void QComboBox::setModel ( QAbstractItemModel * model ) Модель наследуется от QAbstract*ItemModel и переопределяются нужные тебе методы. |