这是我要调用的方法原型:
const QString& FieldForm::getTitle(void) const;
我必须通过 Qt 函数调用此方法:invokeMethod
。
这是我的 invokeMethod 调用:
bool ok = QMetaObject::invokeMethod(obj, MethodeName.toStdString().c_str(), Qt::DirectConnection, Q_RETURN_ARG(const QString, ReturnValue));
ok
始终设置为假。
我认为问题是我的函数返回一个const QString&
. 我怎样才能得到返回值呢?
谢谢
编辑:不改变我的方法的原型
编辑2:代码
主文件
int main(int argc, char **argv)
{
qRegisterMetaType("FieldForm");
qRegisterMetaType("FieldForm*");
QApplication app(argc, argv);
FieldForm *obj = new FieldForm;
obj->setTitle("MyTitle");
QString MethodName = "getTitle";
QString ReturnValue;
bool ok = QMetaObject::invokeMethod(obj, MethodName.toStdString().c_str(), Qt::DirectConnection, Q_RETURN_ARG(QString, ReturnValue));
return app.exec();
}
FieldForm.h
class FieldForm : public QObject
{
Q_OBJECT
private:
QString Title;
public slots:
const QString& getTitle(void) const
{
return (this->Title);
}
};