QML 布局:列布局(ColumnLayout)和行布局(RowLayout )

列布局和行布局相同,都具备以下属性。

导入模块

import QtQuick.Layouts 1.1



继承
item类


属性
layoutDirection
设置布局的布局方向。

spacing
设置每个单元格之间的间距。



布局中的项支持以下附加属性
Layout.minimumWidth
设置布局中项的最小宽度。将该值设置为-1将把宽度重置为隐式的最小宽度。

Layout.minimumHeight
设置布局中项目的最小高度。

Layout.preferredWidth
设置布局中项目的首选宽度。如果首选宽度是-1,它将被忽略,而布局将使用implicitWidth代替。缺省值是-1。

Layout.preferredHeight
设置布局中项目的首选高度。

Layout.maximumWidth
设置布局中项的最大宽度。

Layout.maximumHeight
设置布局中项的最大高度。

Layout.fillWidth
如果此属性为true,则该项将在遵守给定约束的情况下尽可能宽(可拉伸)。如果该属性为false,则将该项的首选宽度设置为固定宽度。默认为false,除了布局本身,它默认为true。

Layout.fillHeight

Layout.alignment
此属性允许您指定项在其占用的单元格中的对齐方式。格式:Qt.AlignCenter

Layout.margins
设置项的外边距。需导入 QtQuick.Layouts 1.2

Layout.leftMargin
设置项的左外边距。需导入 QtQuick.Layouts 1.2

Layout.rightMargin
Layout.topMargin
Layout.bottomMargin



举例

ColumnLayout{
    spacing: 2

    Rectangle {
        Layout.alignment: Qt.AlignCenter
        color: "red"
        Layout.preferredWidth: 40
        Layout.preferredHeight: 40
    }

    Rectangle {
        Layout.alignment: Qt.AlignRight
        color: "green"
        Layout.preferredWidth: 40
        Layout.preferredHeight: 70
    }

    Rectangle {
        Layout.alignment: Qt.AlignBottom
        Layout.fillHeight: true
        color: "blue"
        Layout.preferredWidth: 70
        Layout.preferredHeight: 40
    }
}

在这里插入图片描述
以上布局没有设置anchors.fill: parent,则三个矩形均为固定大小。如果设置了anchors.fill: parent,则红色矩形和绿色矩形固定大小,蓝色矩形高度可拉伸。

RowLayout {
    id: layout
    anchors.fill: parent   //填充到父项
    spacing: 6
    Rectangle {
        color: 'teal'
        Layout.fillWidth: true   //可拉伸
        Layout.minimumWidth: 50
        Layout.preferredWidth: 100
        Layout.maximumWidth: 300
        Layout.minimumHeight: 150
        Text {
            anchors.centerIn: parent
            text: parent.width + 'x' + parent.height
        }
    }
    Rectangle {
        color: 'plum'
        Layout.fillWidth: true
        Layout.minimumWidth: 100
        Layout.preferredWidth: 200
        Layout.preferredHeight: 100
        Text {
            anchors.centerIn: parent
            text: parent.width + 'x' + parent.height
        }
    }
}

在这里插入图片描述

以上两个矩形宽度均可拉伸,绿色最大拉伸置300。


官方文档:https://doc.qt.io/qt-6/qml-qtquick-layouts-columnlayout.html
https://doc.qt.io/qt-6/qml-qtquick-layouts-rowlayout.html

QML是一种基于JavaScript语法的用户界面描述语言,它使用了一种类似CSS的布局方式来管理UI元素的位置和大小。这种布局方式称为QML布局管理,它使得UI设计师可以更加方便地创建和管理UI布局。 以下是QML布局管理使用说明: 1. 容器元素 在QML布局管理中,容器元素是最基本的元素之一。它们用于包含其他UI元素,从而创建整个UI界面。常见的容器元素包括Rectangle、Item、ColumnLayoutRowLayout等。 2. 布局属性 QML布局管理提供了一些布局属性,用于控制UI元素的位置和大小。常见的布局属性包括x、y、width、height、anchors等。 其中,x和y属性用于控制UI元素的位置,width和height属性用于控制UI元素的大小,anchors属性用于将UI元素锚定到其他UI元素上。 3. 布局方式 QML布局管理提供了多种布局方式,包括水平布局、垂直布局、网格布局等。这些布局方式可以通过使用不同的容器元素和布局属性来实现。 例如,使用ColumnLayout容器元素和Layout.alignment属性可以创建垂直布局,使用RowLayout容器元素和Layout.alignment属性可以创建水平布局,使用GridLayout容器元素可以创建网格布局。 4. 响应式设计 QML布局管理支持响应式设计,可以根据不同的设备和屏幕尺寸来自动调整UI元素的位置和大小。这可以通过使用Layout.preferredWidth和Layout.preferredHeight属性来实现。 例如,为了使UI元素在不同的屏幕尺寸下都能够自适应,可以设置Layout.preferredWidth和Layout.preferredHeight属性为相对值,如:Layout.preferredWidth: parent.width * 0.5。 总之,QML布局管理是一种非常方便和灵活的UI布局方式,可以帮助UI设计师更加高效地创建和管理UI界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值