《QmlBook》笔记(1):一个简单的qml程序

一个旋转的风车示例:

//main.qml

import QtQuick 2.0
import QtQuick.Window 2.0

Window
{
    id:root;
    visible: true;
    width: bg.width;
    height: bg.height;

    Image
    {
        id: bg
        source: "img/bg.png";//白色背景图片
    }

    Image
    {
        id:ganzi
        source: "img/ganzi.png"
        anchors.bottom: parent.bottom
        anchors.horizontalCenter: parent.horizontalCenter
    }

    Image
    {
        id: shanye;
        anchors.centerIn: parent;
        source: "img/shanye.png";
        //anchors.horizontalCenterOffset:100;//锚定后的水平偏移量
        //anchors.verticalCenterOffset:100;
        Behavior on rotation //旋转角度动画
        {
            NumberAnimation
            {
                duration: 250 //动画持续时间
            }
        }
    }

    MouseArea
    {
        width: root.width;
        height: root.height;

        onClicked:
        {
            shanye.rotation += 90; //点击则旋转角度增加90
        }
    }
}

知识点和代码解析:

1、QML文件采用 .qml 作为文件格式后缀。

2、作为一种标记语言一个QML文档有且只有一个根元素,此例中 Window 作为根元素。QML不限制根元素类型。

3、每个元素都有属性,比如 Window width height 等属性。

4、id 是个特殊的属性,它可以作为一个标识符在当前文档内引用对应的元素。

5、id 被定义后无法再改变,在程序执行期间也无法被赋值。

6、杆子放在水平中央:

7、扇叶放在中央:

8、锚属性:anchor。锚点可以指定对象与父对象和同级对象的相对几何位置。

  • 可定义元素放在另一个元素的中央 (anchors.centerIn: parent) 。
  • 锚点定义时两端都可以定义元素的左侧 (left)、右侧(right)、顶部(top)、底部(bottom)、居中(centerIn)、填充 (fill)、垂直居中(verticalCenter )和水平居中(horizontalCenter )相对位置。

9、当用户点击 MouseArea 覆盖区域时,鼠标区域会发出一个信号。可以重写 onClicked 函数来链接这个信号。信号链接的函数命名方式是 on + SignalName 的形式。在这个例子中使扇叶图片的旋转角度增加90度。

10、当属性的值发生改变时也会发出一个信号。命名方式是:on + PropertyName + Chagned。例如宽度(width)属性改变了:。

onWidthChanged:
{
    print(width)
}

11、这里使用了属性行为动画。每次属性改变,动画都会运行。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值