ranet
написал 18 сентября 2008 года в 15:46 (4100 просмотров)
Ведет себя
неопределенно; открыл 4 темы в форуме, оставил 11 комментариев на сайте.
Не нашел, какое cобытие срабатывает на раскрытие списка ComboBox в QT4.. Мне показалось, что его вообще нет.. Подскажите пожалуйста..
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Сигнала, который эмитируется при раскрытии ComboBox-а действительно нет. А для чего он мог бы пригодиться?
Нужен не сигнал (signal), а именно событие (event). Сигнал похожий есть, currentIndexChanged(int) называется (выходит при выборе другого пункта в ComboBox). Он бы вполне подошел, но в QT4 сигнал и привинченный к нему слот обязательно должны иметь следующие в одинаковом порядке и совпадающие по типу возврашаемые значения (у сигнала) и воспринимаемые аргументы (у слота). Этот currentIndexChanged(int) возвращает значение типа int (номер выбранного элемента) в списке или QString (видимо текст содержащийся в выбранном элементе списка), мне это не подходит, и вот почему. Есть несколько ComboBox’ов (пока два), и я хотел бы получить указатель на тот, у которого другой пункт списка выбран. Проще всего написать по отдельному слоту для каждого из них (возможно так и придется, если ничего не придумаю), но я хочу написать функцию. Чтобы она по указателю определяла, какой именно ComboBox её вызвал и дальше работала с ним. Цель — собрать в одном месте (функции) все, что будет происходить при выборе в любом из ComboBox’ов другого элемента списка (для удобства последующей поддержки программы, чтобы функция была одна). Это не обязательно, но очень хочется :)
А для обработчика события возвращаемый результат можно самому любой определить, в том числе и указатель на ComboBox.
Я сообразил, как вывернуться! Можно использовать сигнал currentIndexChanged(QString), он же возвращает нужный мне указатель, функция sender() же есть!
А дальше все великолепно:
QComboBox *SwitchedComboBox;
SwitchedComboBox=(QComboBox*)sender();
И можно делать, чего собирался!!! Ура!!!