繁体   English   中英

在Qt5中,Q_INVOKABLE是否需要从QML调用公共QObject函数?

[英]Is Q_INVOKABLE needed to invoke a public QObject function from QML at all in Qt5?

我刚刚意识到我几乎可以调用暴露给QML的对象的任何函数。 现在我对Q_INVOKABLE感到好奇。 Qt5 文档声明:

[...]任何QML代码都可以访问QObject派生类的实例的以下成员:

  • 属性

  • 方法(提供它们是公共插槽或标记为Q_INVOKABLE)

  • 信号

从Qt5 (在C ++中)开始,我可以像插槽一样调用QObject的任何公共函数,即我不必将它们声明为“公共插槽”。 这是否意味着我可以从QML调用任何方法? 我无法在文档中找到任何内容。

是的,您必须使用Q_INVOKABLE标记QObject的功能,除非它是public slot ,以便能够从QML调用它。

Q_INVOKABLE和slots关键字都使用Qt meta-system注册您的函数。 不同之处在于使用Q_INVOKABLE 可以返回值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM