当前位置: 首页 > news >正文

QML Row与Column布局

在QML界面开发中,布局管理是构建美观、响应式用户界面的基础。Row和Column作为Qt Quick中最常用的两种布局元素,为开发者提供了简单而强大的方式来组织界面元素。

Row与Column布局基础

1. Row水平布局

Row元素将其子元素沿水平方向(X轴)依次排列,默认不会重叠。通过spacing属性可以控制子元素之间的间距。

Row {spacing: 5  // 子元素间距5像素Rectangle { color: "red"; width: 50; height: 50 }Rectangle { color: "green"; width: 70; height: 50 }Rectangle { color: "blue"; width: 50; height: 70 }
}

关键特性​:

  • 子元素默认从左到右排列(layoutDirection可修改方向)
  • 所有子元素高度相同(取最大子元素高度)
  • 宽度由子元素自身宽度和spacing决定

2. Column垂直布局

Column元素将其子元素沿垂直方向(Y轴)依次排列,同样不会产生重叠。

Column {spacing: 10  // 子元素间距10像素Rectangle { color: "red"; width: 100; height: 40 }Rectangle { color: "green"; width: 100; height: 60 }Rectangle { color: "blue"; width: 100; height: 50 }
}

关键特性​:

  • 子元素默认从上到下排列
  • 所有子元素宽度相同(取最大子元素宽度)
  • 高度由子元素自身高度和spacing决定

布局属性深度解析

1. 公共布局属性

Row和Column共享一组核心布局属性:

  • spacing​:子元素之间的间距(默认0)
  • layoutDirection​:布局方向(Qt.LeftToRight或Qt.RightToLeft)
  • padding​:内边距(需Qt 5.6+)
  • add​/ ​move​:添加/移动子元素时的过渡动画

2. 子元素尺寸控制

在Row/Column中,子元素可以通过以下属性控制自身尺寸行为:

Row {Rectangle {width: 50  // 固定宽度Layout.fillWidth: true  // 在RowLayout中填充剩余宽度}Item {width: parent.width * 0.3  // 按比例宽度}
}

尺寸策略​:

  • 固定尺寸:直接设置width/height
  • 比例尺寸:绑定到parent的百分比
  • 填充剩余空间:在RowLayout/ColumnLayout中使用Layout.fillWidth/Height

3. 对齐方式

通过alignment属性控制子元素在主轴和交叉轴上的对齐方式:

Column {width: 200; height: 300spacing: 5alignment: Qt.AlignHCenter  // 子元素水平居中Rectangle { width: 50; height: 50; color: "red" }Rectangle { width: 70; height: 50; color: "green" }
}

可用对齐标志:

  • Qt.AlignLeft/AlignRight/AlignHCenter(水平)
  • Qt.AlignTop/AlignBottom/AlignVCenter(垂直)
  • Qt.AlignCenter(水平垂直居中)
http://www.dtcms.com/a/268639.html

相关文章:

  • YOLOv11 架构优化:提升目标检测性能
  • 国内免代理免费使用Gemini大模型实战
  • Vue的生命周期(Vue2)
  • Maven继承:多模块项目高效管理秘笈
  • 微软重磅开源Magentic-UI!
  • 【Rust CLI项目】Rust CLI命令行处理csv文件项目实战
  • AI Tool Calling 实战——让 LLM 控制 Java 工具
  • java-Milvus 连接池(多key)与自定义端点监听设计
  • C++开源项目—2048.cpp
  • 部署MongoDB
  • 接口漏洞怎么抓?Fiddler 中文版 + Postman + Wireshark 实战指南
  • 记录一个关于Maven配置TSF的报错问题
  • 基于 Three.js 开发三维引擎-02动态圆柱墙体实现
  • Python中50个常用的内置函数(2/2)
  • 剑指offer第2版:动态规划+记忆化搜索
  • 回溯题解——子集【LeetCode】输入的视角(选或不选)
  • YOLOv11模型轻量化挑战:边缘计算设备部署优化方案
  • FastAPI依赖注入:构建高可维护API的核心理念与实战
  • Modbus_TCP 客户端低版本指令(归档)
  • Hadoop 分布式存储与计算框架详解
  • Web后端开发-请求响应
  • NLP:文本特征处理和回译数据增强法
  • Mac-右键用 VS Code 打开文件夹
  • 【Echarts】“折线+柱状”实现双图表-家庭用电量可视化【文章附完整代码】
  • 泛微虚拟视图-数据虚拟化集成
  • 从库函数到API接口,深挖不同语言背后的“封装”与“调用”思想
  • pytest通过pytest_runtest_makereport添加失败截图到Allure报告中
  • 常见问题与最佳实践——AI教你学Docker
  • 1-Kafka介绍及常见应用场景
  • 学习基于springboot秒杀系统-环境配置(接口封装,mybatis,mysql,redis(Linux))