No such method QQuickText::setText(QString)

1
bool bRet = QMetaObject::invokeMethod(textLabel, "setText", Q_ARG(QString, "world hello"));

执行这句会报如下错误:

QMetaObject::invokeMethod: No such method QQuickText::setText(QString)

原因是在QQuickText对应的头文件,比如在C:\Qt\5.6.3\msvc2013\include\QtQuick\5.6.3\QtQuick\private\qquicktext_p.h中,setText方法定义前没有Q_INVOKABLE宏。

正确调用QQuickText::setText的方式是:

1
textLabel->setProperty("text", "hi, bingo");