已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
QML入门必备基础知识之UI布局管理概述使用 Qt 做过 UI 后一定对 QHBoxLayout, QVBoxLayout, 和 QGridLayout 这三个最重要也最常使用的 layout managers 非常熟悉。那么在 QML 中又是如何控制和管理 UI 布局的呢?那么我们这篇文章就为大家介绍这些基础知识。首先,QML 同样允许大家使用硬编码的方式将位置数值直接写到代码中,但是这样做首先难以适应 UI 的调整,其次代码维护起来也很困难。因此我们推荐大家不要直接写数值,而是使用下列三种布局管理器:Row,、Column、Grid,以及使用 Anchor 进行布局。RowQML 中的 Row 元素会将其子控件都排列在同一行,相互不重叠。我们还可以使用它的 spacing 属性来定义子控件之间的距离。比如下列代码就会产生如图所示的效果:Row spacing: 2 Rectangle color: red; width: 50; height: 50 Rectangle color: green; width: 20; height: 50 Rectangle color: blue; width: 50; height: 20 ColumnQML 中的 Column 元素会将其子控件都排列在同一行,相互不重叠。我们可以使用它的 spacing 属性来定义子控件之间的距离。比如下列代码就会产生如图所示的效果:Column spacing: 2 Rectangle color: red; width: 50; height: 50 Rectangle color: green; width: 20; height: 50 Rectangle color: blue; width: 50; height: 20 GridQML 中的 Grid 元素会将其子控件都均匀地排列在一个网格内,相互不重叠,每一个子控件都被放置在一个网格单元的(0,0)位置,也就是左上角。Grid的 rows 和 columns 属性定义网格的行数和列数,列数默认是4。我们还可以使用 Grid 的spacing 属性来定义网格单元之间的距离,这里注意水平和垂直方向的 spacing 都是一样的。比如下列代码就会产生如图所示的效果:Grid columns: 3 spacing: 2 Rectangle color: red; width: 50; height: 50 Rectangle color: green; width: 20; height: 50 Rectangle color: blue; width: 50; height: 20 Rectangle color: cyan; width: 50; height: 50 Rectangle color: magenta; width: 10; height: 10 混合应用我们还可以将 Grid、Row 和 Column 进行混合应用。比如下面的代码会产生如图所示的效果:Column spacing: 2 Rectangle color: red; width: 50; height: 50 Row spacing: 2 Rectangle color: yellow; width: 50; height: 50 Rectangle color: black; width: 20; height: 50 Rectangle color: blue; width:50; height: 20 Rectangle color: green; width: 20; height: 50 Anchor每一个 item 都可以被认为具有 7 条隐藏的“anchor lines:left、 horizontalCenter、 right、 top、 verticalCenter、baseline、以及 bottom,如下图所示:其中 baseline 是指的文本所在的线,在上图中并未标出,如果 item 没有文字的话 baselinw 就和 top 的位置是相同的。 除此之外,Anchor 系统还提供了margins 和 offsets。margins 是指一个 item 和外界之间所留有的空间,而 offsets 则可以通过使用 center anchor lines 来进行布局。如下图所示:使用 QML anchoring 系统,我们可以定义不同 items 之间的 anchor lines 之间的关系。例如:Rectangle id: rect1; . Rectangle id: rect2; anchors.left: rect1.right; anchors.leftMargin: 5; . 执行效果:我们还可以使用多个 anchors:Rectangle id: rect1; . Rectangle id: rect2; anchors.left: rect1.right; anchors.top: rect1.bottom; . 执行效果:通过定义多个水平或垂直的 anchors,我们还可以控制 item 的大小,例如:Rectangle id: rect1; x: 0; . Rectangle id: rect2; anchors.left: rect1.right; anchors.right: rect3.left; . Rectangle id: rect3; x: 150; . 执行效果:注意:出于效率方面的考虑,我们只允许对一个 item 的邻居和直接父亲使用 anchor 定义。比如下面的定义是不合法的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妊娠期心脏病合并罕见心脏病的诊疗策略
- 妊娠期合并运动系统疾病管理策略
- 仓库物资管理试题及答案
- 2026年辐射安全考试题及答案
- 妇幼全周期健康管理:孕前到产后精准照护
- 头颈机器人手术的疼痛管理策略
- 大数据驱动下的尘肺病发病趋势预测模型
- 物业考试完整试题及答案
- 天然气考试及答案
- 2025年高职第二学年(增材制造技术)3D打印工艺测试题及答案
- 2026年及未来5年中国锻造件行业市场深度分析及发展前景预测报告
- 2025年荆楚理工学院马克思主义基本原理概论期末考试真题汇编
- 2026年恒丰银行广州分行社会招聘备考题库带答案详解
- 纹绣风险协议书
- 【语文】湖南省长沙市雨花区桂花树小学小学一年级上册期末试卷(含答案)
- 贵港市利恒投资集团有限公司关于公开招聘工作人员备考题库附答案
- 2026年及未来5年市场数据中国大型铸锻件行业市场深度分析及投资战略数据分析研究报告
- 儿科2025年终工作总结及2026年工作计划汇报
- 冬季防静电安全注意事项
- GB/T 18318-2001纺织品织物弯曲长度的测定
- 医患沟通方法与技巧教材课件
评论
0/150
提交评论