1.QML语法笔记

概览:

1.QML是一种描述用户界面的声明式语言。它将用户界面分解成一些更小的元素,这些元素能够结合成一个组件

2.子元素从父元素继承了坐标系统,它的X,Y坐标总是相对于它的父元素坐标

3.一个元素使用它的类型声明,然后使用{}包含eg:  Rectangle {}   声明一个矩形

4.元素拥有属性,按照 name:value进行赋值 eg:widget:20  宽20

5.元素可以嵌套,父元素可以拥有多个子元素,子元素通过parent访问父元素

一属性(Properties)

元素通过他们的类型进行声明,使用他们的属性或者创建自定义属性来定义,一个属性有一个类型定义并且需要一个初始值。

Text {
    id : label
    x: 20
    y: 20
    width: 30
    height: width* 2       
    property int items: 25//自定义属性,使用property关键字  property + 属性类型 + 属性名 + 属性值
}

1.id是一个特殊值,在QML文件中用来引用元素。

2.一个属性能够设置一个值,这个值依赖于它的类型。如果没有对一个属性赋值,它将会被初始化为一个默认值,请参考不同元素的对应文档

3.一个属性能够依赖一个或者多个其他属性,这种操作叫做属性绑定。当它的依赖属性值改变,它也会改变。

4.自定义属性,使用property关键字 property + 属性类型 + 属性名 + : + 属性值

5.一些属性是按组分配的,例如font属性

6.属性值改变的时候,会产生一个信号,该信号一般是 0n+属性名(属性名第一个字母大写)+Changed

eg: 自定义了一个count属性,当count值改变时,就可以做一些其他我们想要的操作

 

 

import QtQuick 2.0
import QtQuick.Window 2.12
import QtQuick.Controls 2.12

Window{
    visible: true
    width: 840
    height: 520

    Button {
        width: 840
        height: 20
        onClicked: {
            myText.font.pixelSize += 10
            myText.count += 1
        }
    }

    Text{
        y:20
        width: 840
        height: 500
        id:myText
        text: "hahaha"
        color: "red"
        font.pixelSize: 10
        horizontalAlignment: Text.AlignHCenter
        verticalAlignment: Text.AlignHCenter
        onFontChanged: console.log("font is changed font.pixelSize = " + font.pixelSize)

        property int count: 0
        onCountChanged: console.log("count = " +  count)

    }
}

 

posted @ 2021-08-02 10:11  陈和权  阅读(194)  评论(0编辑  收藏  举报