0、前提
C++类需要继承QObject,且有Q_OBJECT宏【所以QT自己的那么多类按道理上QML都是可以直接访问的,nb】
1、QML访问C++中的非private槽函数
可直接调用
信号也是
2、QML访问C++的非private函数
在函数名前加:Q_INVOKABLE
3、QML访问C++的属性
添加Q_PROPERTY说明,这个值和自身的属性值可不相等,在QML职工使用b就行了
使用的时候:
udp.b=100会调用setA(100)
udp.b会调用getA()
这里有个问题:我理解a的值变化之后会自动触发NOTIFY中的信号,但是事实没有;如果没有特别用到这个NOTIFY,可直接使用get和set函数来访问a,这样还和C++的封装性风格保持一致
注意:如果属性或者函数没有设置正确会提示错误
TypeError: Property 'sendSlot' of object Myudp(0x72fdd8) is not a function