Есть ли метод, чтобы узнать соединен ли сигнал со слотом?, и если соединен то сколько раз? |
Здравствуйте, гость ( Вход | Регистрация )
Есть ли метод, чтобы узнать соединен ли сигнал со слотом?, и если соединен то сколько раз? |
berserk |
11.2.2009, 11:41
Сообщение
#31
|
Студент Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
kwisp |
11.2.2009, 11:56
Сообщение
#32
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
berserk |
11.2.2009, 12:01
Сообщение
#33
|
Студент Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: 0 |
Книжка "QT. Профессиональное программирование на С++" стр 45 (немного под себя только модифицировать). Больше примеров не знаю... Самому написать щас некогда. совршенно случайно книга на столе оказалась. не понял твоей идеи. можешь поподробнее свои мысли изложить??? сколько конектов произошло, столько раз и слот получит сигнал (в слоте счётчик), но если нужно посчитать сколько коннектов было с конкретным сигналом такой способ не пойдёт... ЗЫ: если я правильно понял задачу |
|
|
kwisp |
11.2.2009, 12:05
Сообщение
#34
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
berserk,
думаю счетчик в слоте ничем не поможет. ну выяснил ты что сигнал вызывает слот 2 или третий раз что не выполнишь действия которые в слоте? а после разъединения счетчик в слоте надо будет сбрасывать... както не доконца понятна идея.... |
|
|
berserk |
11.2.2009, 12:13
Сообщение
#35
|
Студент Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: 0 |
berserk, думаю счетчик в слоте ничем не поможет. ну выяснил ты что сигнал вызывает слот 2 или третий раз что не выполнишь действия которые в слоте? а после разъединения счетчик в слоте надо будет сбрасывать... както не доконца понятна идея.... Ну может и неправильно , я 2 дня как qt изучаю... |
|
|
Константин |
11.2.2009, 12:25
Сообщение
#36
|
Студент Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1 |
"а почему бы и нет?" - странное обоснование...неизбежно напорется на вопрос "а зачем?".
и мне тоже интересно "а зачем?". какой смысл отрабатывать слот по десять раз на одно(!) событие? а если сигнализирующие объекты разные, то какой смысл их считать? не забываем дисконнектить то, что сами же и сконнектили - и таких потребностей не будет возникать. а пичкать библиотеку функционалом для забывчивых - неблагодарное (и ненужное) занятие. Цитата олучается надо просто написать ИЗБЕГАЙТЕ РЕАЛИЗАЦИИ ДИНАМИЧЕСКОЙ МАШИНЫ СОСТОЯНИЙ с помощью сигналов и слотов дабы избежать проблем с много кратным соединением. используйте колбэки что угодно но не сигналы и слоты даже если соединения редко используемые. к чему крайности? а то проще написать ИЗБЕГАЙТЕ ИСПОЛЬЗОВАНИЯ КУТЭ В СВОИХ ПРОЕКТАХ. а можно и проще - ИЗБЕГАЙТЕ ПРОГРАММИРОВАНИЯ... |
|
|
kwisp |
11.2.2009, 12:48
Сообщение
#37
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Константин,
>какой смысл отрабатывать слот по десять раз на одно(!) событие? действительно если ты соединил случайно два раза один и тот же сигнал с одним и тем же слотом зачем отрабаотывать 2 раз.??? а так сделали трольтехи! вот зачем это не понятно. т.е. в соединении присутствует не только тот факт что соединено или нет(логика bool) а соединено и сколько раз соединено(уже сложнее). почему не могу узнать сколько раз соединено??? почему не могу узнать соединенно ли вообще??? вот это точно крайности, к чему это? Цитата ИЗБЕГАЙТЕ ИСПОЛЬЗОВАНИЯ КУТЭ В СВОИХ ПРОЕКТАХ. а можно и проще - ИЗБЕГАЙТЕ ПРОГРАММИРОВАНИЯ... ты же избегаешь много кратного соединения, не так ли??? к чему наша дисскусия?. я предлагаю её прекратить. кто хочет будет использовать динамическое соединение разъединение и будет считать свои соединения сам. все что хотел по теме сказать сказал. |
|
|
kuler |
11.2.2009, 13:06
Сообщение
#38
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
они взялись реализовать сигналы слоты взялись сделать как коннект так и дисконнект ну и уже бы и предоставили возможность узнать сколько соединений а еще в qtablewidget нельзя узнать есть ли столбец с заданным названием. К чему я это? к тому что не все сделано как нада и полностью. Некоторые вещи еще и глючат |
|
|
Константин |
11.2.2009, 13:12
Сообщение
#39
|
Студент Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1 |
узнать соединенно ли вообще QObject::connectNotify(...) ты же избегаешь много кратного соединения, не так ли??? а ты и не писал про "избегайте многократных соединений", изречение было иным. если ты соединил случайно два раза один и тот же сигнал с одним и тем же слотом зачем отрабаотывать 2 раз.? для конечных состояний не должно быть случайностей. либо ты соединил, либо нет. соединил два раза - тебе виднее, но и эффект получишь для двух раз. а вот зачем считать сколько раз ты соединил, если соединял вручную? ты же не соединяешь сигнал со слотом в соответствии с гороскопом или "была-не-была". тема бессмысленна с самого начала а еще в qtablewidget нельзя узнать есть ли столбец с заданным названием. возьми модель-источник и пройдись по заголовкам. или проблема в том, что нет готовой функции? |
|
|
SABROG |
11.2.2009, 13:29
Сообщение
#40
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
возьми модель-источник и пройдись по заголовкам. или проблема в том, что нет готовой функции? Это имхо специфичная задача, для чего создавать такой метод мне не понятно.
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 9:48 |