Я разрабатываю приложение Qt, и мне интересно, есть ли какие-либо преимущества для создания классов QObject
, кроме добавления сигналов и слотов к ним.Когда я должен получить класс из QObject?
ответ
Помимо назначения функций сигнала/слота, QObject также добавляет несколько возможностей отражения на классы C++.
Если вы хотите добавить подмножество QObject, вы можете использовать Q_GADGET, которые добавляют некоторые особенности отражения и такие вещи, как Q_ENUM, Q_PROPERTY и т.д.
В Документах больше информации о it
C++ с размышлениями для меня новичок! –
Qt добавляет некоторые возможности отражения через MOC: Компилятор метаобъектов, Qt-код не является стандартным кодом на C++, поэтому для этого требуется использовать Meta Compiler. – danielfranca
Код Qt является стандартным C++. Moc просто генерирует код в дополнение к самописному коду, оба являются стандартно-совместимыми. –
в [docs] (http://doc.qt.io/qt-5/qobject.html) есть список того, что QObjects может сделать – user463035818
. Одна из главных вещей - это возможность использовать макросы Q_INVOKABLE и Q_PROPERTY для сценариев ваших объектов из QML – Jimmy