Название: Как получить список подключенных объектов Отправлено: alexis031182 от Март 09, 2010, 19:25 Имеется объект, которому нужна информация о подключенных к нему методом QObject::connect() других объектах. Просто хотя бы список получить. QObject::connectNotify() и QObject::receivers() не подходят, т.к. первый метод не передаёт информации о самом объекте, а второй лишь возвращает общее количество подключенных объектов.
Название: Re: Как получить список подключенных объектов Отправлено: SABROG от Март 09, 2010, 20:53 Стандартными средствами никак.
Название: Re: Как получить список подключенных объектов Отправлено: alexis031182 от Март 09, 2010, 21:57 Если нестандартно, то только при помощи хранения списка указателей на объекты подключенных классов? Других вариантов нет?
Название: Re: Как получить список подключенных объектов Отправлено: SASA от Март 10, 2010, 14:57 Можно в отладчике по шагам посмотреть, что происходит при "испускании" сигнала и как он доходит до слушающих. Мне кажется внутри QObject есть место где хранится эта информация. Может как-нибудь можно до неё добраться :)
Название: Re: Как получить список подключенных объектов Отправлено: SABROG от Март 10, 2010, 15:20 Можно, добирались, но это хак.
Название: Re: Как получить список подключенных объектов Отправлено: alexis031182 от Март 10, 2010, 15:50 Спасибо за участие. Решил задачу через сигнальную петлю.
Название: Re: Как получить список подключенных объектов Отправлено: Akaiten от Март 10, 2010, 16:08 Есть ещё один, несколько "хакерский" способ. Через использование Q_DECLARE_PRIVATE. Пример:
Код Также см. исходники QAccessibleWidget. Название: Re: Как получить список подключенных объектов Отправлено: alexis031182 от Март 10, 2010, 16:34 О! Спасибо! Этот способ куда как лучше моего :)
Название: Re: Как получить список подключенных объектов Отправлено: SABROG от Март 10, 2010, 17:03 Раз уж хак все-таки тут разместили, то еще один способ "доступа".
Код
Также см. исходники QAccessibleWidget. А вот "легальный" пример с использованием классов для людей с ограниченными возможностями я бы с удовольствием посмотрел. |