c++类中的信号绑定qml的槽

文章描述了一个C++类定义了一个名为valueChanged的信号,并在函数中触发这个信号。通过QQmlApplicationEngine,该C++类被注册到QML环境中,然后在QML代码中使用Connections对象连接C++的信号和QML的槽函数,实现了跨语言的事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先声明c++的类

class Myclass{
.....
signals:
        void valueChanged(bool res);
.....

}
Myclass::function(){
...........
        emit valueChanged(bool res);
}

myclass类中有一个valueChanged的信号,然后在其他函数中发出这些信号

在main.cpp中将Myclass类注册到qml中

Myclass *control=new Myclass();

QQmlApplicationEngine engine;
engine.rootContext()->setContextProperty("control", control);//注册到qml中的名字是“”部分

然后在qml中把槽和c++中的信号用Connection连接起来

Connections {
            target: control         //这是注册到qml中的c++类的名字
            function onValueChanged(res){     //这里就是信号对应的槽函数的名字,把函数名设置为(on+信号             
                                                                           //名),就能自动识别是哪个信号,括号内是信号传的参数,只说明参                                            
                        //要做的操作                            // 数名(方便在槽函数中使用)不用说明类型
  
            }
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值