crossplatform.ru

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


  Ответ в QObject * parent = 0 - возможен ли доступ к его методам из дочернего объекта ?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Diem Дата 14.3.2009, 12:48
  Спасибо, qobject_cast - как раз то что нужно!
Litkevich Yuriy Дата 14.3.2009, 12:29
 
Цитата(Diem @ 14.3.2009, 15:15) *
даёт ошибку: ‘class QObject’ has no member named ‘getSomeInfo’
приведи свой код.
BRE Дата 14.3.2009, 12:25
 
Цитата(Diem @ 14.3.2009, 12:15) *
При создании экземпляра 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.


MyClass *p = qobject_cast<MyClass*>( parent() );
p->getSomeInfo();
Diem Дата 14.3.2009, 12:15
  При создании экземпляра QObject можно передать объект-родитель, при разрушении которого будет разрушен и данный экземпляр QObject.
Но возможен ли доступ из дочернего объекта к мтодам этого самого родителя ?
value = parent()->getSomeInfo();
даёт ошибку: ‘class QObject’ has no member named ‘getSomeInfo’

Или если я поставлю в конструкторе в место типа QObject* для parent - MyClass*, будет ли дочерний объект разрушатся при разрушении parent ?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 20.4.2024, 6:11