Man*_*d3r 4 c++ qt qml qt5
我刚刚意识到我几乎可以调用暴露给QML的对象的任何函数.现在我对Q_INVOKABLE感到好奇.Qt5 文档声明:
[...]任何QML代码都可以访问QObject派生类的实例的以下成员: 属性 方法(提供它们是公共插槽或标记为Q_INVOKABLE) 信号
[...]任何QML代码都可以访问QObject派生类的实例的以下成员:
属性
方法(提供它们是公共插槽或标记为Q_INVOKABLE)
从Qt5(在C++中)开始,我可以像插槽一样调用QObject的任何公共函数,即我不必将它们声明为"公共插槽".这是否意味着我可以从QML调用任何方法?我无法在文档中找到任何内容.
tal*_*aki 8
是的,您必须标记QObject的功能,Q_INVOKABLE除非它是public slot为了能够从QML调用它.
Q_INVOKABLE
public slot
Q_INVOKABLE和slots关键字都会注册您的函数Qt meta-system.不同之处在于使用Q_INVOKABLE 可以返回值.
Qt meta-system
归档时间:
9 年,7 月 前
查看次数:
1234 次
最近记录:
9 年,5 月 前