QMl小结2-(基本结构和信号槽机制)

本文介绍了QML语言中的信号槽机制,包括直接在对象中声明、使用函数结合信号的方式及信号与槽的链接方法等内容。

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

结构上:qml是一种描述性的脚本语言,类似于css,采用parent-child结构连接各个控件。整体结构类似于树,父节点和子节点之间可以进行事件的交互


信号槽机制:(signals and slots)
我们知道,在QWidget中的信号和槽机制是通过在connect()函数相连在一起的,那么,在QML中,我们常用的有以下方式:
1.可以选择在对象中声明:
Rectangle{
        id:rec
        width:200
        height:300
        x:(parent.width-width)/2
        y:(parent.height-height)/2
        color:"green"
        MouseArea{
            anchors.fill: parent
            parent.color:"red"
        }
    }
此时,我们设置rec对象整个胃接受鼠标点击的区域,当我们点击是,rec对象设置成了红色。
2.可以选择函数signal+函数的方式
在此,我们声明函数:
function fun(){
        rec.color="blue"
    }
并且把1中代码改成:
Rectangle{
        id:rec
        width:200
        height:300
        x:(parent.width-width)/2
        y:(parent.height-height)/2
        color:"green"
        MouseArea{
            anchors.fill: parent
            onClicked: fun()
        }
    }
那么,在click事件发生时,就会调转到fun函数,fun函数修改rec对象的颜色为蓝色。
3.信号与槽的链接方式:
<1>.Component.onCompleted+操作或者函数
例如:
Button{
        id:btn
        x:300
        y:400
        text:"button"
    }
    Component.onCompleted: {
        btn.clicked.connect(fun);
    }
    function fun(){
        rec.color="blue"
    }
此时,单击btn按钮时,就会改变rec的颜色
<2>.Connections链接
一般格式如下:
Connections{
target:
signal:fun或者具体操作
}
例如:
Connections{
        target:win
        onHeightChanged:{
            win.color="black"
        }
    }
此时,当窗口win的高度改变时,窗口颜色会变为黑色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值