Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Litkevich Yuriy |
11.2.2009, 9:58
Сообщение
#21
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(berserk @ 11.2.2009, 12:46) Link а в слоте счетчик описать нельзя? можно, если ты слот сам пишешь, здесь и сейчас. А если он от стандартного виджета или самописаной библиотечки? Не переделывать же ее.
|
|
|
|
|
kwisp |
11.2.2009, 9:59
Сообщение
#22
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
berserk,
примерчик подскажешь, мне уже не нужно, просто ради интерса.... |
|
|
|
|
Константин |
11.2.2009, 9:59
Сообщение
#23
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1
|
1.
Цитата(kwisp @ 6.12.2008, 20:06) Link к примеру: в зависимости набора событий, на определенный хот кей программа должна реагировать по разному, короче в зависимости от обстоятельств у меня сигнал высылаемый фильтром событий клавиатуры соединяется то с одним обработчиком(слотом) то с другим то с третим, при это с остальными разъединяется. задача-пример, если угодно. 2. "не совсем верный подход" потому, что он в общем случае верный и реализуется проще, но в конкретных случаях этот подход неоптимален (частое "передёргивание" коннектов - не есть гут) |
|
|
|
|
kwisp |
11.2.2009, 10:12
Сообщение
#24
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
ну QVariant& тож слать не гут
а вот если бы не тупил в одно время с коннектами не нашел бы самого интереснного.- нет стандартного механизма счетчика соединений сигнала со слотом. Цитата частое "передёргивание" коннектов - не есть гут 100% так но кто сказал что оно частое? + тема называется "Есть ли метод, чтобы узнать соединен ли сигнал со слотом?" а не "Как мне сделать то то и то то??? помогите есть ли у кого идеи." внимание вопрос: метод есть? уже выснили что стандартного нет. или все же есть? |
|
|
|
|
Litkevich Yuriy |
11.2.2009, 10:18
Сообщение
#25
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Мысль вслух:
1) когда мы в своей программе создаем соединения, то все эти соединения описываются в файле moc_***.cpp. 2) когда мы создаем несколько одинаковых соединений, то слот будет вызван столько раз сколько соединений - значит счетчик есть. Может стоит попытаться работать с этими moc_***.cpp файлами? |
|
|
|
|
kwisp |
11.2.2009, 10:28
Сообщение
#26
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Litkevich Yuriy,
Цитата значит счетчик есть. думаю не факт. смотрел исходники moc??? там не все гладко. да и вообще нужно ли это? если только для интересу. получается надо просто написать ИЗБЕГАЙТЕ РЕАЛИЗАЦИИ ДИНАМИЧЕСКОЙ МАШИНЫ СОСТОЯНИЙ с помощью сигналов и слотов дабы избежать проблем с много кратным соединением. используйте колбэки что угодно но не сигналы и слоты даже если соединения редко используемые. я приводил ответ троллех-тех.поддержки. "нету и не зачем" я так понял. хотя если спмостоятельно написать мини патч и отправить тролям с подробным обоснованием нафига это надо. думаю они будут рады и даже скажут спасибо. |
|
|
|
|
kuler |
11.2.2009, 10:46
Сообщение
#27
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1
|
разве нельзя создать маленький класс в котором будет счетчик и через который будет производиться коннект, а потом наследовать от него?
|
|
|
|
|
kwisp |
11.2.2009, 10:57
Сообщение
#28
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(kuler @ 11.2.2009, 10:46) Link разве нельзя создать маленький класс в котором будет счетчик и через который будет производиться коннект, а потом наследовать от него? напиши если тебе интеерсна эта тема. а я будет время залезу в мок и посмотрю что там. |
|
|
|
|
Константин |
11.2.2009, 11:10
Сообщение
#29
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1
|
Цитата(Litkevich Yuriy @ 11.2.2009, 10:18) Link Мысль вслух: 1) когда мы в своей программе создаем соединения, то все эти соединения описываются в файле moc_***.cpp. 2) когда мы создаем несколько одинаковых соединений, то слот будет вызван столько раз сколько соединений - значит счетчик есть. Может стоит попытаться работать с этими moc_***.cpp файлами? 1. соединения не описываются нигде. QObject::connect соединяет сигнал со слотом (или с сигналом) рантайм - по имени/индексу сигнала/слота 2. счётчика как такового нет, есть список коннектов, в котором при желании можно было бы посчитать определённые индексы Цитата(kwisp @ 11.2.2009, 10:28) Link я приводил ответ троллех-тех.поддержки. "нету и не зачем" я так понял. хотя если спмостоятельно написать мини патч и отправить тролям с подробным обоснованием нафига это надо. думаю они будут рады и даже скажут спасибо. так и есть. а можем мы предварительно услышать обоснование "нафига оно надо"? почему-то мне кажается, что весомо аргументировать не получится ) |
|
|
|
|
kwisp |
11.2.2009, 11:35
Сообщение
#30
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Константин,
действительно, а смогу ли я обосновать необходимость такового счетчика??? я думаю что смогу. есть функция QObject::connect() и QObject::disconnect() следовательно предполагается возможность динамического соединение и разъединение сигналов и слотов??? не правда ли??? почему я не могу узнать сколько раз вызовется мой слот при одном вызове сигнала господа трольтеховцы (0-вообще не соединен на данный момент, 1,2,3 ... 10)??? вот и все обоснование. только конечно более литературно написать. другой вопрос насколько это необходимо вообще. если ты четко следишь за состояниями объектов, и пользуешь другие методы отключения блокировки сигналов в каких то состояниях получается ты выполняешь немного осмелюсь сказать библиотечную задачу. они взялись реализовать сигналы слоты взялись сделать как коннект так и дисконнект ну и уже бы и предоставили возможность узнать сколько соединений. вообще не хочу разводить полемику по данному поводу ,Константин, изначально был просто пост в теме "секреты и интересные возможности Qt" где я описал найденный минисекрет и отсутсвие может быть ненужной возможности. вот и все это просто интересный факт а не способ и метод решения моей задачи моя машина уже как сто лет написана без динамических соединений. а обнаружен факт случайно и в ассистенте 3 версии как минимум не описан. просто факт как есть и все. говорю же если кому интересно может рыть и писать в этой теме свои решения это странности. |
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 17.12.2025, 13:18 |