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"); |