如何使用Q_ARG将指针传递给QMetaObject :: newInstance()

时间:2015-05-19 20:18:05

标签: c++ qt qmetaobject

我试图使用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。

0 个答案:

没有答案