qml学习笔记(三)

opacity是一个继承属性,也就是说,父项目的透明度也会应用到子项目上,大多数情况下,这会产生想要的结果。

比如下面的代码会使红色和蓝色矩形块都透明,只想蓝色透明怎么办?把opacity:0.5属性挪到蓝色矩形框下即可。

import QtQuick 2.2
Item{
    Rectangle{
        opacity:0.5
        color:"red"
        width:100;height:100
        Rectangle{
            color:"blue"
            x:50;y:20;width:100;height:100
        }
    }
}
QtObject是一个非可视化的元素,它只包含objectName属性。QtObject一般用于封装一组自定一的属性方便用于参数设置。例如:

import QtQuick 2.0

QtObject {
    id: settings
    // These are used to scale fonts according to screen size
    property real _scaler: 300 + mainWindow.width * mainWindow.height * 0.00010
    property int fontXS: _scaler * 0.032
    property int fontS: _scaler * 0.045
    property int fontM: _scaler * 0.050
    property int fontMM: _scaler * 0.070
    property int fontL: _scaler * 0.100
}
一个项目可以通过设置其focus属性为true来使其获得焦点。一般情况下,使用focus属性就足够了。例如:

import QtQuick 2.2
Rectangle{
    color:"lightsteelblue";width:240;height:200
    Text{id:myText}
    Item{
        id:keyHandler
        focus:true
        Keys.onPressed:{
            if(event.key == Qt.Key_A)
                myText.text = 'Key A was pressed'
            else if(event.key == Qt.Key_B)
                myText.text = "Key B was pressed"
            else if(event.key == Qt.Key_C)
                myText.text = 'Key C was pressed'
        }
    }
}
Q_PROPERTY宏用来定义可通过元对象系统访问的属性,通过它定义的属性,可以在QML中访问,修改,也可以在属性变化时发射特定的信号。例子:

Q_PROPERTY(type name)
其中:

READ:如果你没有为属性指定MEMBER标记,则READ标记必不可少;声明一个读取属性的函数,该函数一般没有参数,返回定义的属性。

WRITE :可选配置。声明一个设定属性的函数。它指定的函数没有返回值,只能有一个与属性类型匹配的参数 。

NOTIFY :可选配置。给属性关联一个信号(该信号必须是已经在类中声明过的),当属性的值发生变化时就会触发该信号。信号的参数,一般就是你定义的属性。
 

你可能感兴趣的:(qml)