QT QML布局

发布于:2025-04-11 ⋅ 阅读:(33) ⋅ 点赞:(0)

一、‌锚点布局(Anchors)

  1.  通过定义元素与其他元素或父容器的锚点关系实现定位,支持动态调整和边距控制‌。

    Rectangle {
        anchors.left: parent.left   // 左对齐父容器
        anchors.top: parent.top     // 顶部对齐父容器
        anchors.margins: 10        // 统一设置四周边距
        width: 100; height: 50
    }
    
    • 关键属性‌:anchors.leftanchors.rightanchors.fill(填充父容器)、anchors.centerIn(居中)‌。
    • 边距控制‌:anchors.margins(统一边距)或单独设置anchors.leftMargin等‌。

二、水平布局(Row)

Row定位器将子元素水平排列。你可以通过spacing属性来设置子元素之间的间距。主要属性:

基本属性

属性 类型 默认值 描述
spacing real 0 子元素之间的间距(像素)
layoutDirection enumeration Qt.LeftToRight 布局方向(LeftToRight/RightToLeft)
add Transition - 添加子项时应用的过渡动画
move Transition - 移动子项时应用的过渡动画
populate Transition - 初始创建子项时应用的过渡动画

对齐属性

属性 类型 默认值 描述
topPadding real 0 顶部内边距
bottomPadding real 0 底部内边距
leftPadding real 0 左侧内边距
rightPadding real 0 右侧内边距
padding real 0 统一设置所有内边距
verticalAlignment enumeration Row.AlignTop 垂直对齐方式(AlignTop/AlignVCenter/AlignBottom)
horizontalAlignment enumeration Row.AlignLeft 水平对齐方式(AlignLeft/AlignHCenter/AlignRight)

布局控制属性

属性 类型 默认值 描述
width real 隐含宽度 行宽度(若未设置则为子项总宽度)
height real 隐含高度 行高度(若未设置则为最高子项高度)
clip bool false 是否裁剪超出边界的内容

枚举值说明

layoutDirection:

  • Qt.LeftToRight - 从左到右排列(默认)

  • Qt.RightToLeft - 从右到左排列

verticalAlignment:

  • Row.AlignTop - 顶部对齐

  • Row.AlignVCenter - 垂直居中

  • Row.AlignBottom - 底部对齐

horizontalAlignment: