0

我正在尝试使用 QMetaObject::newInstance 方法调用对象的构造函数。下面我有两个要使用的构造函数示例,一个带有指针,一个带有基本类型:

class A : public QObject {
    Q_OBJECT
public:
    Q_INVOKABLE A(B *b, QObject * parent = 0); // Constructor A
    Q_INVOKABLE A(int x); // Constructor B
}

我可以使用以下方法调用构造函数 B:

const QMetaObject *metaObj = &A::staticMetaObject;
metaObj->newInstance(Q_ARG(int, 0));

但调用构造函数 A 不起作用:

metaObj->newInstance(Q_ARG(B, b_ptr), Q_ARG(QObject, parent));

我尝试了一些变体,包括 Q_ARG(B*, b_ptr)。此外,B 类也继承自 QObject。

4

0 回答 0