Есть ли метод, чтобы узнать соединен ли сигнал со слотом?, и если соединен то сколько раз? |
Здравствуйте, гость ( Вход | Регистрация )
Есть ли метод, чтобы узнать соединен ли сигнал со слотом?, и если соединен то сколько раз? |
kuler |
5.12.2008, 18:42
Сообщение
#11
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
а в чем собсна проблема? в этом:если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то слот вызовется столько раз сколько соединений с этим сигналом мы сделали ну так я ж и ответил - не фиг соединять по пять раз |
|
|
Litkevich Yuriy |
5.12.2008, 21:02
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kwisp |
6.12.2008, 20:06
Сообщение
#13
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
ну так я ж и ответил - не фиг соединять по пять раз к примеру: в зависимости набора событий, на определенный хот кей программа должна реагировать по разному, короче в зависимости от обстоятельств у меня сигнал высылаемый фильтром событий клавиатуры соединяется то с одним обработчиком(слотом) то с другим то с третим, при это с остальными разъединяется. короче трудно все корректно рассказать , но не так то просто было сообразить почему слот вызывается иногда 3 а иногда четыре раза и вообще ты хочешь сказать ты это раньше знал или для тебя это было очевидно и ясно как день??? |
|
|
kuler |
8.12.2008, 15:51
Сообщение
#14
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
для тебя это было очевидно и ясно как день?? "если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то слот вызовется столько раз сколько соединений с этим сигналом мы сделали(n)...." - про это не знал я остановился на том что нет механизма узнать соединен ли слот с сигналом и сколько таковых соединений. а вот это вовсе не обязательно (хотя конечно проще), можно написать свой класс который будет следить за коннектами (по одному объекту на коннект или тупо поставить в соответствие каждому коннекту свой счетчик) |
|
|
kwisp |
8.12.2008, 17:54
Сообщение
#15
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
несогласен, зачем свой счетчик если в библиотеке все для этого есть и разработчикам просто метод дописать надо???
думаю это задача разработчиков, следить за колличеством соединений. а мне так проще разъединить и соединить по новой, разъединение убивает все предыдущие соединения. тем более что в моем проекте происходит это не часто. если честно я и класс и тупое сопоставление каждого коннекта со счетчиком слабо себе представляю... kuler, ты наверное не знаешь но тема перенесена из "Секреты и интересные возможности Qt" - это просто обнаруженная интересная штука, а во все не проблема. |
|
|
kuler |
18.12.2008, 16:29
Сообщение
#16
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
из мануала про connect
A signal is emitted for every connection you make, so if you duplicate a connection, two signals will be emitted. You can always break a connection using disconnect(). |
|
|
Litkevich Yuriy |
27.12.2008, 18:19
Сообщение
#17
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
предлагаю этой темой и тем чем вызвана данная дискусия пополнить ЧаВО: Сигналы и слоты
|
|
|
Константин |
11.2.2009, 6:30
Сообщение
#18
|
Студент Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1 |
поведение очевидное - всего лишь нужно читать документацию.
для задачи, описанной kwisp, сигналы-слоты - не совсем верный подход. он применим только если альтернативные состояния можно уместить в энум или пару вариантов - тогда
в противном же случае советую использовать customEvent: Цитата void QObject::customEvent ( QEvent * event ) [virtual protected]
This event handler can be reimplemented in a subclass to receive custom events. Custom events are user-defined events with a type value at least as large as the QEvent::User item of the QEvent::Type enum, and is typically a QEvent subclass. The event is passed in the event parameter. |
|
|
kwisp |
11.2.2009, 9:25
Сообщение
#19
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Константин,
здравствуйте. у меня два вопроса к вам. Цитата ....для задачи, описанной kwisp, ... 1. Из каких источников вы знаете мою задачу и можете ли её сформулировать яснее? Цитата ...сигналы-слоты - не совсем верный подход... 2. Почему для моей задачи "не совсем верный"(звучит так же как чуть чуть беременна ) подход? заранее спасибо. |
|
|
berserk |
11.2.2009, 9:46
Сообщение
#20
|
Студент Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: 0 |
а в слоте счетчик описать нельзя?
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 7:42 |