2016-04-09 1 views
1

Я разрабатываю приложение Qt, и мне интересно, есть ли какие-либо преимущества для создания классов QObject, кроме добавления сигналов и слотов к ним.Когда я должен получить класс из QObject?

+0

в [docs] (http://doc.qt.io/qt-5/qobject.html) есть список того, что QObjects может сделать – user463035818

+0

. Одна из главных вещей - это возможность использовать макросы Q_INVOKABLE и Q_PROPERTY для сценариев ваших объектов из QML – Jimmy

ответ

3

Помимо назначения функций сигнала/слота, QObject также добавляет несколько возможностей отражения на классы C++.

Если вы хотите добавить подмножество QObject, вы можете использовать Q_GADGET, которые добавляют некоторые особенности отражения и такие вещи, как Q_ENUM, Q_PROPERTY и т.д.

В Документах больше информации о it

+0

C++ с размышлениями для меня новичок! –

+1

Qt добавляет некоторые возможности отражения через MOC: Компилятор метаобъектов, Qt-код не является стандартным кодом на C++, поэтому для этого требуется использовать Meta Compiler. – danielfranca

+2

Код Qt является стандартным C++. Moc просто генерирует код в дополнение к самописному коду, оба являются стандартно-совместимыми. –