гм.. в общем хочется мне сделать следующее "извращение" :
В объекте "родителе", создаем объект "дитятку", подключемся к его сигналу свой слот и ... передаем его с сигналом на обработку другим объектам.
Хочу что бы при этом не разрывалась связь "родителя" и "дитятки".
Хочу что бы приемник который будет принимать такого "дитятку", вызвал в полученном объекте метод который испускает сигнал, который дойдет именно к его "родителю".
Фигня в том, что "родителей" которые создают "дитяток" - много, а путь "дитяток" по системе заранее не известен. При этом нужно отслеживать на родителе всё что случается с его "дитяткой" - его могут перекидывать между собой много разных объектов;
мне хочется таким образом делать простую доставку сообщений к "родителю" о судьбе его "дитятки".
В общем не особо заморачиваться. )
оно так будет? или как это сделать?
PS: сейчас начну эксперименты... но думается мне что не получится.
Есть у многоуважаемых коллег мысли о том как это сделать наименее геморройно?
QT4.3: передать с сигналом объект и сохранить с ним connect . (хочется. а будет? "архитектурные" заморочки...)
Модератор: Модераторы разделов
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
-
un-defined
- Сообщения: 145
- ОС: Kubuntu, Gentoo
Re: QT4.3: передать с сигналом объект и сохранить с ним connect .
родитель и дитятко хоть как связаны между собой - через наследование или через использование?
Don`t try - just do or do not ©Master Joda
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: QT4.3: передать с сигналом объект и сохранить с ним connect .
un-defined писал(а): ↑24.03.2008 01:37родитель и дитятко хоть как связаны между собой - через наследование или через использование?
по идее - никак )
совершенно разные классы.
использовать родительский указатель - parent - тоже нельзя - ибо "дитятко" может(и должен) путешествовать между разными потоками.
Можно конечно в "дитятко" засунуть указатель на "родителя"... но хочется пользовать сигнал-слот механизмы...
навдруг потребуется к дитятке прицепить ещё какой перехватчик сигналов...
на уровне идеи: Как я понимаю, при "отправке" объекта с сигналом с сигналом "уходит" копия объекта.
Что если попробовать перегрузить оператор копирования - и в нем попробовать "отследить" объекты к которым подключен сигнал "оригинального-дитятки" и попробовать аналогично подключть и себя...
но есть ли где в qt механизм получения ссылок на объекты
залинкованных на сигнал...?! троллтеч даже опцию получения числа подключенных к сигналу объектов (resivers()) объявил как "нарушающую принципы ООП"... <_<
ЗЫ: или я туплю или лыжи не едут.. не выходт у меня отправить с сигналом QObject-based объект... ругается на что-то внутри операции копирования... спать навреное пора уже....
-
Clear_Mind
- Сообщения: 241
- Статус: Изредко заглядывающий
- ОС: openSuSE 11.1
Re: QT4.3: передать с сигналом объект и сохранить с ним connect .
Если я все правильно понял... Возможно стоит использоать указатель на дочерний объект, а не его копию. В таком случае в родительском объекте останется уазатель на дочерний объект, а значит и связь с ним.
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)
Take a look at your last sky + Guessing you won't have the time to cry
--- Iron Maiden (Brouther Than A Thousand Suns, 2006)