我刚刚意识到我可以调用暴露于 QML 的对象的几乎任何函数。现在我对 Q_INVOKABLE 很好奇。 Qt5docs http://doc.qt.io/qt-5/qtqml-cppintegration-exposecppattributes.html state:
[...]任何 QML 代码都可以访问以下成员
QObject 派生类的实例:
从Qt5开始 https://wiki.qt.io/Qt-5Features(在 C++ 中)我可以像槽一样调用 QObject 的任何公共函数,即我不必将它们声明为“公共槽”。这是否意味着我可以从 QML 调用任何方法?我在文档中找不到任何内容。
是的,你必须用以下标记你的 QObject 函数Q_INVOKABLE
除非它是一个public slot
以便能够从 QML 调用它。
Q_INVOKABLE 和 slot 关键字都注册您的函数Qt meta-system
。区别在于使用Q_INVOKABLE你可以返回值.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)