qt Qml qml Property的使用方法

本文介绍了在QtQuickQML中使用property特性声明变量、设置属性类型、以及readonly和required的使用方法,同时展示了如何通过alias功能间接修改控件属性。通过实例代码演示了如何在主窗口中动态控制嵌套的Rectangle组件。
摘要由CSDN通过智能技术生成

9.property

简介:

自己声明一个变量名,自己赋值,外部可以对其赋值

可以声明一个属性变量

int

string

var

double

等等

也可以声明一个控件用于外部写入到本qml

rectangle

component

等等

其他:

在property前面可以加readonly就可以只能外部访问,不能修改

在property前面可以加required就可以在外部创建这个属性后才能建立子控件,如果没创建就报错

注意:属性的name不能首字母大写

property可以声明的属性变量里有个特殊的 就是 alias​ 可以去声明一个控件的一个属性,方便外部修改

示例代码:

My_rec_1.qml

import QtQuick 2.0

Rectangle{

    id:outrec
    property color mycolor: "red"
    property int myheight:100
    readonly property int mywidth:200
    required property Component mycomponent
    property alias newinrec: inrec
    property alias newinrec_leftMargin: inrec.anchors.leftMargin
    width: mywidth
    height: myheight
    color: "blue"
    Loader {
    id:loader
    sourceComponent: mycomponent}
    Rectangle{
        id:inrec
        color:mycolor
        anchors.fill:parent
        anchors.topMargin: 20
        anchors.bottomMargin: 20
        anchors.leftMargin: 20
        anchors.rightMargin: 10
    }


}

main.qml

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15

Window {
    visible: true
    width: 800
    height: 600
    title: qsTr("Hello scan")
    color: "gray"
    Component{
        id:com
        Button{
            width:50
            height: 25}}
    My_rec_1{
        id:myrec
        mycomponent: com
        Component.onCompleted: {console.log(mywidth)}
    }
    MouseArea{width:100
        height: 50
        x:500
        Rectangle{
            anchors.fill: parent
            color:"red"
        }
        onClicked: {
            myrec.newinrec.anchors.bottomMargin = 50
            myrec.myheight = 400
            myrec.newinrec_leftMargin = 0
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值