ranet
написал 18 сентября 2008 года в 15:46 (4234 просмотра)
Ведет себя
неопределенно; открыл 4 темы в форуме, оставил 11 комментариев на сайте.
Не нашел, какое cобытие срабатывает на раскрытие списка ComboBox в QT4.. Мне показалось, что его вообще нет.. Подскажите пожалуйста..
Последние комментарии
-
OlegL, 17 декабря 2023 года в 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
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

Сигнала, который эмитируется при раскрытии ComboBox-а действительно нет. А для чего он мог бы пригодиться?
Нужен не сигнал (signal), а именно событие (event). Сигнал похожий есть, currentIndexChanged(int) называется (выходит при выборе другого пункта в ComboBox). Он бы вполне подошел, но в QT4 сигнал и привинченный к нему слот обязательно должны иметь следующие в одинаковом порядке и совпадающие по типу возврашаемые значения (у сигнала) и воспринимаемые аргументы (у слота). Этот currentIndexChanged(int) возвращает значение типа int (номер выбранного элемента) в списке или QString (видимо текст содержащийся в выбранном элементе списка), мне это не подходит, и вот почему. Есть несколько ComboBox’ов (пока два), и я хотел бы получить указатель на тот, у которого другой пункт списка выбран. Проще всего написать по отдельному слоту для каждого из них (возможно так и придется, если ничего не придумаю), но я хочу написать функцию. Чтобы она по указателю определяла, какой именно ComboBox её вызвал и дальше работала с ним. Цель — собрать в одном месте (функции) все, что будет происходить при выборе в любом из ComboBox’ов другого элемента списка (для удобства последующей поддержки программы, чтобы функция была одна). Это не обязательно, но очень хочется :)
А для обработчика события возвращаемый результат можно самому любой определить, в том числе и указатель на ComboBox.
Я сообразил, как вывернуться! Можно использовать сигнал currentIndexChanged(QString), он же возвращает нужный мне указатель, функция sender() же есть!
А дальше все великолепно:
QComboBox *SwitchedComboBox;
SwitchedComboBox=(QComboBox*)sender();
И можно делать, чего собирался!!! Ура!!!