Я хочу создать новый экземпляр класса A
, который наследует базовый класс, полученный от QObject
.QMetaObject :: newInstance failes, если тип находится в пространстве имен
В случае A
не в пространстве имен это работает отлично, но в случае A
находится в пространстве имен, этот вызов возвращает нулевой указатель:
QObject *o = metaObject->newInstance(arg1,arg2,arg3);
metaObject
сами возвращает имя правильно класса (в том числе Пространство имен)
std::cout << "Class name from staticMetaObject: " << metaObject->className() << std::endl;
конструктор A
отмечен Q_INVOKABLE
. Как я могу использовать QMetaObject::newInstance
с пространствами имен?
Документы говорят: «Этот класс обычно не требуется для программирования приложений». Поэтому, вероятно, вы не должны использовать 'QMetaObject' в своем прикладном программировании. –
Можете ли вы вставить больше кода, связанного с вашими классами? – peppe
@ HiI'mFrogatto И как это должно быть полезно? Я использую 'QMetaObject' все время. Вы заплатили за это, используйте его! –