QT4.3: передать с сигналом объект и сохранить с ним connect . (хочется. а будет? "архитектурные" заморочки...)

Модератор: Модераторы разделов

Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

QT4.3: передать с сигналом объект и сохранить с ним connect .

Сообщение Denjs »

гм.. в общем хочется мне сделать следующее "извращение" :

В объекте "родителе", создаем объект "дитятку", подключемся к его сигналу свой слот и ... передаем его с сигналом на обработку другим объектам.
Хочу что бы при этом не разрывалась связь "родителя" и "дитятки".
Хочу что бы приемник который будет принимать такого "дитятку", вызвал в полученном объекте метод который испускает сигнал, который дойдет именно к его "родителю".

Фигня в том, что "родителей" которые создают "дитяток" - много, а путь "дитяток" по системе заранее не известен. При этом нужно отслеживать на родителе всё что случается с его "дитяткой" - его могут перекидывать между собой много разных объектов;
мне хочется таким образом делать простую доставку сообщений к "родителю" о судьбе его "дитятки".
В общем не особо заморачиваться. )
оно так будет? или как это сделать?

PS: сейчас начну эксперименты... но думается мне что не получится.
Есть у многоуважаемых коллег мысли о том как это сделать наименее геморройно?
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
un-defined
Сообщения: 145
ОС: Kubuntu, Gentoo

Re: QT4.3: передать с сигналом объект и сохранить с ним connect .

Сообщение un-defined »

родитель и дитятко хоть как связаны между собой - через наследование или через использование?
Don`t try - just do or do not ©Master Joda
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: QT4.3: передать с сигналом объект и сохранить с ним connect .

Сообщение Denjs »

un-defined писал(а):
24.03.2008 01:37
родитель и дитятко хоть как связаны между собой - через наследование или через использование?

по идее - никак )
совершенно разные классы.
использовать родительский указатель - parent - тоже нельзя - ибо "дитятко" может(и должен) путешествовать между разными потоками.
Можно конечно в "дитятко" засунуть указатель на "родителя"... но хочется пользовать сигнал-слот механизмы...
навдруг потребуется к дитятке прицепить ещё какой перехватчик сигналов...


на уровне идеи: Как я понимаю, при "отправке" объекта с сигналом с сигналом "уходит" копия объекта.
Что если попробовать перегрузить оператор копирования - и в нем попробовать "отследить" объекты к которым подключен сигнал "оригинального-дитятки" и попробовать аналогично подключть и себя...
но есть ли где в qt механизм получения ссылок на объекты
залинкованных на сигнал...?! троллтеч даже опцию получения числа подключенных к сигналу объектов (resivers()) объявил как "нарушающую принципы ООП"... <_<

ЗЫ: или я туплю или лыжи не едут.. не выходт у меня отправить с сигналом QObject-based объект... ругается на что-то внутри операции копирования... спать навреное пора уже....
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
Clear_Mind
Сообщения: 241
Статус: Изредко заглядывающий
ОС: openSuSE 11.1

Re: QT4.3: передать с сигналом объект и сохранить с ним connect .

Сообщение Clear_Mind »

Если я все правильно понял... Возможно стоит использоать указатель на дочерний объект, а не его копию. В таком случае в родительском объекте останется уазатель на дочерний объект, а значит и связь с ним.
Bombers launch with no recall + Minutes warning of the missile fall
Take a look at your last sky + Guessing you won't have the time to cry
--- Iron Maiden (Brouther Than A Thousand Suns, 2006)
Спасибо сказали: