Особенности, которые требуют макрос Q_OBJECT в Qt 4, кроме механизма сигнальных слотов - PullRequest
1 голос
/ 14 июня 2010

Я использую Qt 4.5 в Windows XP.Я знаю, что мы должны использовать макрос Q_OBJECT для механизма подключения слотов .Но кроме этого, есть ли другие причины использовать макрос Q_OBJECT?Недавно я узнал, что для некоторых других функций мета-объекта нам требуется объявление Q_OBJECT.Что это за функции у сигнальных слотов?Я пытался получить документацию по этому поводу, но не смог найти ничего полезного.Любые указания по этому поводу приветствуются.

Ответы [ 2 ]

8 голосов
/ 14 июня 2010

Здесь вы можете найти все, что вам нужно знать, когда требуется макрос Q_OBJECT:

http://doc.qt.digia.com/4.6/metaobjects.html

В резюме вам это нужно для сигналов и слотов, для использования tr для перевода, для извлечения имени класса в реальном времени из QObject, чтобы узнать, наследуется ли оно от другого класса (инстроспекция), для установки свойств и для возможности вызова newInstance.

Надеюсь, это поможет.

0 голосов
/ 14 июня 2010

AFAIK используется для получения метаинформации (имена сигнальных слотов, переменных) и обеспечивает поддержку отслеживания владения объектами.(иначе, просто создайте новых и передайте родителям эти объекты, и они будут детерминированно расположены по мере того, как время родителя пройдет.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...