Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
ViGOur |
26.11.2008, 20:10
Сообщение
#1
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(kwisp @ 26.11.2008, 17:58) Link всем привет. Для этого как я понимаю нужно использовать класс: Link.
может я собираюсь написать об очевидной штуке, но однако меня она удивила. 1. если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то слот вызовется столько раз сколько соединений с этим сигналом мы сделали(n).... 2. если разъединить сигнал со слотом - то рушатся все соединения этого сигнала с этим слотом. ... известен ли кому нибудь метод узнать соединен ли сигнал со слотом и если соединен то сколько раз??? Сообщение отредактировал ViGOur - 1.12.2008, 19:34 |
|
|
|
|
kwisp |
26.11.2008, 20:14
Сообщение
#2
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
я вот поискал в QMetaObject и не нашел
и больше того начал крутить функции данного класса. у меня в 4,4,3 версии QMetaObject::indexOfSlot(SLOT(myslot())) всегда возвращает -1не зависимо от того соединен слот или нет есть он или нет. короче странное что то... я остановился на том что нет механизма узнать соединен ли слот с сигналом и сколько таковых соединений. |
|
|
|
|
ViGOur |
26.11.2008, 20:19
Сообщение
#3
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
тоесть примерно при таком вызове:
Цитата(cpp) this->metaObject()->indexOfSlot(SLOT(myslot())); ???нужно будет завтра самомы проверить, а то qt под рукой нет. |
|
|
|
|
kwisp |
26.11.2008, 20:24
Сообщение
#4
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
да вызов и такой пробовал и не только такой.
|
|
|
|
|
ViGOur |
1.12.2008, 17:54
Сообщение
#5
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(kwisp @ 26.11.2008, 20:14) Link QMetaObject::indexOfSlot(SLOT(myslot())) всегда возвращает -1 Оказалось все просто, нужно вызывать так: |
|
|
|
|
kwisp |
1.12.2008, 18:41
Сообщение
#6
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(ViGOur @ 1.12.2008, 17:54) Link Оказалось все просто, нужно вызывать так: прикольно получается. жаль что это все равно не поможет мне узнать колличество соединений между сигналом и слотом. |
|
|
|
|
ViGOur |
1.12.2008, 19:36
Сообщение
#7
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(kwisp @ 1.12.2008, 18:41) Link жаль что это все равно не поможет мне узнать колличество соединений между сигналом и слотом. У меня пока получилось только получить все методы объекта, с сигналами и слотами с помощью QMetaObject, поэтому думаю нужно капать в другую сторону, как будет время капну... |
|
|
|
|
kwisp |
5.12.2008, 10:16
Сообщение
#8
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
из переписки с технической поддержкой:
" ... Unfortunately we dont have any such convenience function which tells how many times a signal is being connected with a slot. Indeed I dont see any good use case for such function. I can create a suggestion task for our developers if I get some generic good use case for such functionality. Regards, I. Omair -- Irfan Omair Support Engineer Nokia Inc, Redwood City Link " думаю тему можно закрыть. |
|
|
|
|
kuler |
5.12.2008, 16:36
Сообщение
#9
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1
|
а в чем собсна проблема? это как в анекдоте: бабка врачу: сынок я когда делаю вот так (нагибается), то у меня спина болит. Врач: дык не делайте так. Следующий!
|
|
|
|
|
Litkevich Yuriy |
5.12.2008, 18:00
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(kuler @ 5.12.2008, 19:36) Link а в чем собсна проблема? в этом:Цитата(kwisp @ 26.11.2008, 20:58) Link если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то
слот вызовется столько раз сколько соединений с этим сигналом мы сделали |
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 14.12.2025, 2:54 |