QML学习笔记【05】:QML信号与槽

1、默认信号槽

QML中,对所以的变量会默认生成 "Changed" 信号,和对应的 "onXxx>Changed" 槽函数。信号默认绑定的槽函数为 "on"

property int value: 0
onValueChanged: {
        console.log("onValueChanged: ", value)
    }

//按钮点击会触发clicked信号,对应的 onClicked 槽函数就会执行
Button{
    id: btn
    width: 50; height: 50
    onClicked: { //点击后发送信号
        console.log("onClicked")
    }
}

2、自定义信号槽

QML中,可以使用 signal 自定义有参或是无参的信号,使用 Connections 创建信号的处理

Window {
    id: root
    width: 640; height: 480
    visible: true
    title: qsTr("信号槽")
    color: "white"

    //自定义信号,可以是无参、也可以是有参
    signal testSig(string str, int value) //有参
    //自定义函数用作信号槽函数
    function func(str, value){
        console.log(str,value)
    }

    Button{
        id: btn
        width: 50; height: 50
        onClicked: { //点击后发送信号
            testSig("dhl", 10)
        }
    }

//    //绑定信号槽方式1:加载完后,用信号.connect绑定槽函数
//    Component.onCompleted: {
//        testSig.connect(func)
//    }
    //绑定信号槽方式2:使用Connections组件,直接编写信号的槽函数
//    Connections{
//        target: root
//        function onTestSig(s, v) { //使用 function "on<Signal>" 定义槽函数,更直观。但是测试发现不行!!可能是高版本才支持
//            console.log(s,v)
//        }
//    }
    Connections{
        target: root
        onTestSig: { //槽函数为"on<Signal>" 这种方式方式可以
            console.log(str,value)
        }
    }
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值