×
Namespaces

Variants
Actions
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

Совместимость
Платформа(ы):
Symbian

Статья
Автор: 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.
129 page views in the last 30 days.