Russian Qt Forum
Сентябрь 30, 2024, 10:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Емит сигналов QGraphicsScene из QGraphicsItem  (Прочитано 6475 раз)
QDgara
Гость
« : Март 27, 2008, 21:25 »

У меня есть наследник от QGraphicsScene, например:
Код:
MyScene:public QGraphicsScene
{
...
signals:
   void mySingnal();
...
}
И наследник от QGraphicsItem:
Код:
MyItem:public QGraphicsItem
{
... //где-то в коде
void foo()
{
  emit _myScene->mySignal();
}
}

Не работает. Как сделать, помагите. Вариант унаследовать от QObject не предлагать, есть на то причины.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Март 27, 2008, 23:14 »

см. QMetaObject::invokeMethod
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
QDgara
Гость
« Ответ #2 : Март 28, 2008, 12:32 »

см. QMetaObject::invokeMethod

Спасибо, помогло.  Улыбающийся
Записан
Вячеслав
Гость
« Ответ #3 : Март 28, 2008, 16:20 »

Вариант унаследовать от QObject не предлагать, есть на то причины.
А почему если не секрет ?
Записан
QDgara
Гость
« Ответ #4 : Март 28, 2008, 17:08 »

А почему если не секрет ?
Не секрет:
1) Предпочитаю пока не пользоваться множественным наследованием.
2) Сущности всё-таки разные, не считаю нужным их смешивать.
Записан
Вячеслав
Гость
« Ответ #5 : Март 28, 2008, 22:05 »

Хм ..... Ну каждый Буратино сам-себе враг Подмигивающий
1) В qt куча мест где используеться множественное наследование - фсе работает Подмигивающий
2) А чуть подробнее можно ? В чем криминал ? Сами троли за милую душу этим пользуються Подмигивающий
Записан
QDgara
Гость
« Ответ #6 : Март 28, 2008, 22:26 »

Хм ..... Ну каждый Буратино сам-себе враг Подмигивающий
1) В qt куча мест где используеться множественное наследование - фсе работает Подмигивающий
2) А чуть подробнее можно ? В чем криминал ? Сами троли за милую душу этим пользуються Подмигивающий

Это палка о двух концах.
1) Есть крупные компании, которые вообще отказываются от множественного наследования.
2) Я же пока не гуру программирования, а в книжках для новичков (Мейерс, Страуструп ) рекомендуют использовать множ.наследования только в исключительных случаях. Я так же согласен, что множ.наследование это мощный инструмент, но пользоваться надо умеючи.
Для себя я пока решил избегать множ.наследования, если есть другие варианты и не менее удобные.
Записан
Вячеслав
Гость
« Ответ #7 : Март 30, 2008, 22:14 »

1) Есть крупные компании, которые вообще отказываются от множественного наследования.
Именно для C++ ? Оригинально ... но в каждой лавке свои тараканы.... IMHO если механизм введен в язык и нет никаких поползновений к изчзчезновению оного из стандарта - то грех не пользоваться(с умом).
2) Я же пока не гуру программирования, а в книжках для новичков (Мейерс, Страуструп ) рекомендуют использовать множ.наследования только в исключительных случаях.

А пальцем можно показать,где Страуструп это рекомендует ?Может я чего пропустил в этой жизни Подмигивающий

Кстати о птичках - есть еще один путь - включение сущьности .То-есть делаешь наследника QObject'a создаешь методы которые кидают нужные сигналы,а в наследника QGraphicsItem'а добавляешь мембера этого типа,методы которого и дергаешь Подмигивающий MS COM -forever Подмигивающий ...

Хотя если сами троли в демках не стесняються
Код:
class Mouse : public QObject, public QGraphicsItem
то IMHO юзать можно Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.