QT(qml)通信的理解(信号与槽)

https://www.cnblogs.com/shenLong1356/p/11210412.html#_label0

QT的C++层的通信

一、自定义信号

关键字:signals

signals  :

void ageChanged(int age); //虽然是一个函数,但是无需实现,参数age会传递到槽函数

二、信号和槽函数的关联

关键字:connect

//发送信号对象,发送的信号,接受信号的对象,接受信号的函数
connect(boy,&Person::ageChanged,this,&Person::on_ageChanged);

//又比如
connect(notifer, SIGNAL(onRecvMap(std::shared_ptr<HdMap>)), this,
                   SLOT(onRecvMap(std::shared_ptr<HdMap>)),

三、发射信号

关键字:emit

emit ageChanged(age);  //当年龄age改变时发射信号,让执行槽函数

四、槽函数

关键字:Q_SLOTS

void Person::on_ageChanged(int age) //参数从信号那里来
{
}

Qml与c++通信

一、注册类

两种方式(si是一个类)

qmlRegisterSingletonInstance("C", 1, 0, "Si",Si::getInstance());//加入相应的参数

或者

engine.rootContext()->setContextProperty("si",new Si());

二、声明为Q_INVOKABLE、Q_PROPERTY

si类内的函数声明为Q_INVOKABLE
变量声明为:Q_PROPERTY

  Q_PROPERTY(double x_min READ getXmin);
  Q_INVOKABLE void ac();
  Q_INVOKABLE void ac(const QString& name = "");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值