02属性绑定

属性绑定

简述

​ 可以为对象的属性分配一个静态值,该值保持不变,直到为它显式分配一个新值为止。但是,为了充分利用QML及其对动态对象行为的内置支持,大多数QML对象都使用属性绑定。

​ 在后台,QML引擎监视属性的依赖关系(即绑定表达式中的变量)。检测到更改时,QML引擎将重新计算绑定表达式并将新结果应用于属性。

功能

​ 自动更新属性

Rectangle {
    width: 200; height: 200

    Rectangle {
        width: 100
        height: parent.height //将高度与父窗口一致
        color: "blue"
    }
}

注意

  • 复杂的绑定会降低代码性能,可读性和可维护性。

  • 如果用JavaScript语句为属性分配静态值,则绑定将被删除。如果想要重新绑定高度和宽度必须使用Qt.binding方法, 可以使用如下方法来检查一个属性是否解除绑定 ,当解除绑定时,会发出消息

QLoggingCategory::setFilterRules(QStringLiteral("qt.qml.binding.removal.info=true"));

import QtQuick 2.0

Rectangle {
    width: 100
    height: width * 2

    focus: true
    Keys.onSpacePressed: {
       //解除绑定, height将不再自动更新
        height = width * 3
        //重新绑定
        height = Qt.binding(function() { return width * 3 })
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值