crossplatform.ru

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

5 страниц V  < 1 2 3 4 5 >  
Тема закрытаНачать новую тему
> Есть ли метод, чтобы узнать соединен ли сигнал со слотом?, и если соединен то сколько раз?
Litkevich Yuriy
  опции профиля:
сообщение 11.2.2009, 9:58
Сообщение #21


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(berserk @ 11.2.2009, 12:46) *
а в слоте счетчик описать нельзя?
можно, если ты слот сам пишешь, здесь и сейчас. А если он от стандартного виджета или самописаной библиотечки? Не переделывать же ее.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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) *
к примеру: в зависимости набора событий, на определенный хот кей программа должна реагировать по разному, короче в зависимости от обстоятельств у меня сигнал высылаемый фильтром событий клавиатуры соединяется то с одним обработчиком(слотом) то с другим то с третим, при это с остальными разъединяется.

задача-пример, если угодно.

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) *
разве нельзя создать маленький класс в котором будет счетчик и через который будет производиться коннект, а потом наследовать от него?


напиши если тебе интеерсна эта тема.
а я будет время залезу в мок и посмотрю что там.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Константин
  опции профиля:
сообщение 11.2.2009, 11:10
Сообщение #29


Студент
*

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

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




Репутация:   1  


Цитата(Litkevich Yuriy @ 11.2.2009, 10:18) *
Мысль вслух:
1) когда мы в своей программе создаем соединения, то все эти соединения описываются в файле moc_***.cpp.
2) когда мы создаем несколько одинаковых соединений, то слот будет вызван столько раз сколько соединений - значит счетчик есть.

Может стоит попытаться работать с этими moc_***.cpp файлами?

1. соединения не описываются нигде. QObject::connect соединяет сигнал со слотом (или с сигналом) рантайм - по имени/индексу сигнала/слота
2. счётчика как такового нет, есть список коннектов, в котором при желании можно было бы посчитать определённые индексы


Цитата(kwisp @ 11.2.2009, 10:28) *
я приводил ответ троллех-тех.поддержки. "нету и не зачем" я так понял.

хотя если спмостоятельно написать мини патч и отправить тролям с подробным обоснованием нафига это надо. думаю они будут рады и даже скажут спасибо. :)

так и есть. а можем мы предварительно услышать обоснование "нафига оно надо"? почему-то мне кажается, что весомо аргументировать не получится )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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 версии как минимум не описан.
просто факт как есть и все.
говорю же если кому интересно может рыть и писать в этой теме свои решения это странности.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

5 страниц V  < 1 2 3 4 5 >
Тема закрытаНачать новую тему
Теги
Нет тегов для показа


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




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