QObject * parent = 0 - возможен ли доступ к его методам из дочернего объекта ? |
Здравствуйте, гость ( Вход | Регистрация )
QObject * parent = 0 - возможен ли доступ к его методам из дочернего объекта ? |
Diem |
14.3.2009, 12:15
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 10.3.2009 Пользователь №: 603 Спасибо сказали: 0 раз(а) Репутация: 0 |
При создании экземпляра QObject можно передать объект-родитель, при разрушении которого будет разрушен и данный экземпляр QObject.
Но возможен ли доступ из дочернего объекта к мтодам этого самого родителя ? value = parent()->getSomeInfo(); даёт ошибку: ‘class QObject’ has no member named ‘getSomeInfo’ Или если я поставлю в конструкторе в место типа QObject* для parent - MyClass*, будет ли дочерний объект разрушатся при разрушении parent ? |
|
|
BRE |
14.3.2009, 12:25
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
При создании экземпляра QObject можно передать объект-родитель, при разрушении которого будет разрушен и данный экземпляр QObject. Но возможен ли доступ из дочернего объекта к мтодам этого самого родителя ? value = parent()->getSomeInfo(); даёт ошибку: ‘class QObject’ has no member named ‘getSomeInfo’ Или если я поставлю в конструкторе в место типа QObject* для parent - MyClass*, будет ли дочерний объект разрушатся при разрушении parent ? Цитата из assistant: Цитата T qobject_cast ( QObject * object ) Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns 0. The class T must inherit (directly or indirectly) QObject and be declared with the Q_OBJECT macro. A class is considered to inherit itself. Example: QObject *obj = new QTimer; // QTimer inherits QObject QTimer *timer = qobject_cast<QTimer *>(obj); // timer == (QObject *)obj QAbstractButton *button = qobject_cast<QAbstractButton *>(obj); // button == 0 The qobject_cast() function behaves similarly to the standard C++ dynamic_cast(), with the advantages that it doesn't require RTTI support and it works across dynamic library boundaries. qobject_cast() can also be used in conjunction with interfaces; see the Plug & Paint example for details. Warning: If T isn't declared with the Q_OBJECT macro, this function's return value is undefined.
|
|
|
Litkevich Yuriy |
14.3.2009, 12:29
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Diem |
14.3.2009, 12:48
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 10.3.2009 Пользователь №: 603 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, qobject_cast - как раз то что нужно!
|
|
|
Текстовая версия | Сейчас: 26.11.2024, 11:44 |