QML知识笔记(三)

9 篇文章 0 订阅

概述

QML提供了定位器和锚点来简化元素的布局,使之更加容易确定各子元素间的相对位置。

定位器

将被定位的元素成员都放置在一行的位置

Row{
            x:25
            y:25
            spacing: 10 //元素间距为10像素
            layoutDirection: Qt.RightToLeft //元素从右向左排列
            RedRectangle{}		//自定义组件
            BlueRectangle{}		//自定义组件
            GreenRectangle{}	//自定义组件
        }

将被定位的元素成员都放置在一列的位置

Column{
            x:25
            y:120
            spacing: 10 //元素间距为10像素
            RedRectangle{}
            BlueRectangle{}
            GreenRectangle{}
        }

网格

将元素成员排列为一个网格

Grid{
            x:140
            y:120
            spacing: 5 //元素间距为5像素
            columns: 3
            RedRectangle{}
            BlueRectangle{}
            GreenRectangle{}
            RedRectangle{}
            BlueRectangle{}
            GreenRectangle{}
            RedRectangle{}
            BlueRectangle{}
            GreenRectangle{}
        }

流定位

将元素以流的形式显示出来,添加到Flow里的元素,会根据显示区尺寸变化动态地调整其布局。

Flow{
            anchors.fill: parent
            anchors.margins: 15 //元素与窗口左上角边距为15像素
            spacing: 5
            RedRectangle{}
            BlueRectangle{}
            GreenRectangle{}
            RedRectangle{}
            BlueRectangle{}
            GreenRectangle{}
        }

重复器

重复器用于创建大量相似的元素成员,常与其定位器结合起来使用。

Grid{
            x:25;y:25
            spacing: 4
            //用重复器为Grid添加元素成员
            Repeater{
                model: 16   //创建的成员个数
                Rectangle{
                    width: 45;height: 45
                    color: "aqua"
                    Text{   //显示矩形编号
                        anchors.centerIn: parent
                        color: "black"
                        font.pointSize: 20
                        text: index     //为每个子元素注入一个index属性,作为当前的循环索引
                    }
                }
            }
        }

锚点

每个元素都可以认为有一组无形的锚线,只能在父子兄弟元素之间使用锚,而且基于锚的布局不能与绝对的位置定义混合使用,否则会出现不确定的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值