crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> как идентифицировать сигнал, идентифицировать сигнал
fantom
  опции профиля:
сообщение 29.1.2009, 16:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 29.1.2009
Пользователь №: 515

Спасибо сказали: 1 раз(а)




Репутация:   1  


Здравствуйте. Есть проблема, которую пока никак не могу решить. Соединяю сигнал со слотом, высылаю сигнал - вызывается слот. Как узнать имя сигнала вызвавшего данный слот. Единственное что пока пришло в голову как то использовать класс QSignalSpy. Но как пока не знаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 31.1.2009, 13:23
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(fantom @ 29.1.2009, 16:57) *
так как мне необходимо идентифицировать стандартные сигналы qt. Например от кнопок и др элементов.


Этот код работает только в пределах одного объекта, который выпускает и ловит сигнал.
Т.е. при нажатии на кнопку мы уже не получим имя сигнала, которое было у QPushButton'а. А d_ptr чужих объектов естественно закрыт.

Кстати без reinterpret_cast тоже работает:

#include "private/qobject_p.h" //у меня только так захотел находить заголовок
...
qint32 idSignal = ((QObjectPrivate*)d_ptr)->currentSender->signal;


Сообщение отредактировал SABROG - 31.1.2009, 13:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- fantom   как идентифицировать сигнал   29.1.2009, 16:39
- - kwisp   Цитата(fantom @ 29.1.2009, 16:39) Здравст...   29.1.2009, 16:45
- - fantom   Такой вариант меня не очень устраивает так как мне...   29.1.2009, 16:57
- - ViGOur   Посмотри в сторону: void QMetaObject::connectSlots...   29.1.2009, 17:23
- - fantom   Посмотрел на описание connectSlotsByName ( QObject...   29.1.2009, 18:05
- - Litkevich Yuriy   Цитата(fantom @ 29.1.2009, 19:39) Как узн...   29.1.2009, 20:14
- - ViGOur   Цитата(Litkevich Yuriy @ 29.1.2009, 20:14...   29.1.2009, 20:45
- - Litkevich Yuriy   Цитата(ViGOur @ 29.1.2009, 23:45) дебажна...   29.1.2009, 20:48
- - ViGOur   Объект пославший сигнал можно получить QObject::se...   29.1.2009, 21:05
- - fantom   Конечная цель не дебажная следилка. Есть заказ на ...   30.1.2009, 11:28
|- - kwisp   единственное что приходит в гоолову это так как вы...   30.1.2009, 11:41
- - Litkevich Yuriy   fantom, Если я правильно понял конечную цель, то п...   30.1.2009, 13:47
- - ViGOur   По всей видимости стандартных путей нет. Если хак...   30.1.2009, 15:17
- - fantom   ViGOur вы исходники какой версии qt смотрели? У ...   30.1.2009, 16:06
- - ViGOur   Блин, забыл что у вас 4.3.2, я смотрел 4.4.0. Сейч...   30.1.2009, 16:08
- - fantom   да. в 4.4 должно как то так работать int signalI...   30.1.2009, 16:17
- - ViGOur   В вашей версии есть такой аргумент как QObjectPriv...   30.1.2009, 16:17
- - fantom   Кстати а как получить имя сигнала по индексу? Врод...   30.1.2009, 16:42
- - fantom   Ну судя по metaObject()->indexOfSignal обращени...   30.1.2009, 17:24
- - ViGOur   Цитата(fantom @ 30.1.2009, 16:42) Или как...   30.1.2009, 17:24
- - fantom   Точно! Спасибо все работает. for( int i =...   30.1.2009, 17:45
- - ViGOur   Цитата(fantom @ 30.1.2009, 17:45) В итоге...   31.1.2009, 11:30
- - Litkevich Yuriy   Обсуждение связанное с Vedga перенес в существующу...   31.1.2009, 11:54
- - SABROG   Цитата(fantom @ 29.1.2009, 16:57) так как...   31.1.2009, 13:23
- - fantom   Цитата(SABROG @ 31.1.2009, 13:23) Этот ко...   2.2.2009, 17:34
|- - SABROG   fantom Цитата(fantom @ 2.2.2009, 17:34) Ц...   2.2.2009, 18:45
- - fantom   Ну чтобы не вылезло можешь в каждом своем наследни...   2.2.2009, 19:18
|- - SABROG   fantom Цитата(fantom @ 2.2.2009, 19:18) Н...   2.2.2009, 20:39
- - fantom   SABROG ты сам запутался и меня запутал. короче ник...   3.2.2009, 17:01
- - SABROG   ну теперь, по идее, должно все работать.   3.2.2009, 18:02
- - Tonal   Что-то помоему как-то всё через чур сложно. Может ...   4.2.2009, 9:04
- - SABROG   QObject - не обязательно виджет. QTimer например.   4.2.2009, 9:18
|- - Tonal   Цитата(SABROG @ 4.2.2009, 12:18) QObject ...   4.2.2009, 9:49
- - SABROG   Мое дело предупредить, а уж кто как захочет ваше д...   4.2.2009, 11:39


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.11.2024, 4:23