Revision as of 03:00, 8 May 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Метаинформация в классах Qt

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata


Автор: Den123 (11 Jan 2009)
Последнее редактирование: hamishwillee (08 May 2013)

Метаинформация содержит:

  • данные о классе
  • информацию о наследовании
  • информацию о слотах/сигналах

Для хранения метаинформации используется класс QMetaObject, объектом которого владеет QObject. Получить указатель на QMetaObject можно с помощью метода metaObject():

// obj - объект класса потомка QObject
if( obj->metaObject()->className() == "FirstClass" )
// obj является объектом класса FirstClass

Для проверки информации о наследовании можно воспользоваться методом QObject::inherits():

// obj - объект класса потомка QObject
if( obj->inherits("QAbstractButton") )
QAbstractButton* button = static_cast<QAbstractButton*>(obj);

Тоже самое можно сделать воспользовавшись qobject_cast<T>:

QAbstractButton* button = qobject_cast<QAbstractButton*>(obj);
if( button )

Метаинформация используется для:

Подключение метаинформации к классу выполняет метаобъектный компилятор (moc). Класс должен наследоваться от QObject и содержать в объявлении макрос Q_OBJECT.

This page was last modified on 8 May 2013, at 03:00.
58 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.