crossplatform.ru

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

5 страниц V  < 1 2 3 4 > »   
Тема закрытаНачать новую тему
> Есть ли метод, чтобы узнать соединен ли сигнал со слотом?, и если соединен то сколько раз?
kuler
  опции профиля:
сообщение 5.12.2008, 18:42
Сообщение #11


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


Цитата(Litkevich Yuriy @ 5.12.2008, 18:00) *
Цитата(kuler @ 5.12.2008, 19:36) *
а в чем собсна проблема?
в этом:
Цитата(kwisp @ 26.11.2008, 20:58) *
если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то
слот вызовется столько раз сколько соединений с этим сигналом мы сделали


ну так я ж и ответил - не фиг соединять по пять раз
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.12.2008, 21:02
Сообщение #12


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

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

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




Репутация:   94  


Цитата(kuler @ 5.12.2008, 21:42) *
не фиг соединять по пять раз
это можно и случайно сделать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 6.12.2008, 20:06
Сообщение #13


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(kuler @ 5.12.2008, 18:42) *
ну так я ж и ответил - не фиг соединять по пять раз


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

и вообще ты хочешь сказать ты это раньше знал или для тебя это было очевидно и ясно как день???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 8.12.2008, 15:51
Сообщение #14


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


Цитата(kwisp @ 6.12.2008, 20:06) *
для тебя это было очевидно и ясно как день??


"если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то
слот вызовется столько раз сколько соединений с этим сигналом мы сделали(n)...." - про это не знал
Цитата(kwisp @ 26.11.2008, 20:14) *
я остановился на том что нет механизма узнать соединен ли слот с сигналом и сколько таковых соединений.

а вот это вовсе не обязательно (хотя конечно проще), можно написать свой класс который будет следить за коннектами (по одному объекту на коннект или тупо поставить в соответствие каждому коннекту свой счетчик)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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, сигналы-слоты - не совсем верный подход. он применим только если альтернативные состояния можно уместить в энум или пару вариантов - тогда
Q_SIGNALS:
    void doSomething(int state, const QVariant& param0, const QVariant& param1));

в противном же случае советую использовать 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  


а в слоте счетчик описать нельзя?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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