Здравствуйте, гость ( Вход | Регистрация )
|
fantom |
29.1.2009, 16:39
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1
|
Здравствуйте. Есть проблема, которую пока никак не могу решить. Соединяю сигнал со слотом, высылаю сигнал - вызывается слот. Как узнать имя сигнала вызвавшего данный слот. Единственное что пока пришло в голову как то использовать класс QSignalSpy. Но как пока не знаю.
|
|
|
|
![]() |
|
Tonal |
4.2.2009, 9:04
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
Что-то помоему как-то всё через чур сложно. Может по другому прощее будет?
Например: 1. В дизайнере создаётся интерфейс (UI форма). 2. Для виджетов, сигналы которых нужно транслировать добавляется динамическое свойство с именами сигналов. 3. "Лёгкий клиент" грузит ui-шку (QUiLoader), пробегается по всем её виджетикам, и для тех у кого есть соответственное динамическое свойство создаёт нужные конекты в которых вся нужная инфа и отфудболивается на сервак. И не нужно никаких хаков Qt. Кроме того, покуда не изменились имена можно безболезненно менять интерфейс. Так же клиент полностью не зависит от UI, т.е. его вообще не нужно перекомпилять при добавлении новой формочки. |
|
|
|
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
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![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 14.12.2025, 14:21 |