免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
详解 QT 布局管理界面栅格布局管理器可以以网格的形式,将它所管理的部件以一定的矩阵形式排列。比如上图中,所有的部件一起看,其实就是一种矩阵的形式来排列的。栅格布局管理器最典型的用法是将部件规规矩矩的排列好,每个栅格的单元格里放一个部件,如下图的示例:类似上图这种布局比较容易实现,只需要把各个部件填入到指定的单元格里即可,示例代码如下:1 m_Layout-addWidget(Label1, 0, 0); / 将Label1填到(0,0)单元格 2 m_Layout-addWidget(Label2, 0, 2); / 将Label2填到(0,2)单元格 3 而我们要实现的这个温度转换器的界面,并不是一个规则的栅格结构。而是如下这种结构:上图中的这6部分,并不是规规矩矩的栅格形式。那怎么办呢?没关系,栅格布局管理器提供了很大的灵活性。具体表现在,可以设定某个部件是否需要横跨n个列,或者是否需要纵越m个行。什么意思呢?先来看一个简单的例子以上面这种布局来说,三个部件其中有两个部件是比较规矩的处于两个单元格内,但是第三个部件就横跨了两列,实际上,我们可以这样来看这张布局图:这样就一目了然了。第三个部件的确是横跨了两列(在水平方向上占用了两个单元格)。在使用栅格布局管理器对三个部件进行管理时,就可以这样:4 m_Layout-addWidget(m_Widget1, 0, 0); / 第一个部件在(0,0) 5 m_Layout-addWidget(m_Widget2, 0, 1); / 第二个部件在(0,1) 6 m_Layout-addWIdget(m_Widget3, 1, 0, 1,2); / 第三个部件起始于(1,0),并纵越1行,横跨2列 同样的,再看下图:我们可以认为右侧的部件纵越了两行(在垂直方向上占用了两个单元格),对应的示例代码:7 m_Layout-addWidget(m_Widget1, 0, 0); / 第一个部件在(0,0) 8 m_Layout-addWidget(m_Widget2, 1, 0); / 第二个部件在(1,0) 9 m_Layout-addWIdget(m_Widget3, 0, 1, 2, 1); / 第三个部件起始于(0,1),并纵越2行,横跨1列 这其实很类似于HTML里利用Table做网页布局时使用的手段。稍微了解一些HTML的人都会知道,在Table布局时,单元格会有rowSpan和colSpan的参数,这两个参数的意义其实就是所谓的“纵越n个行”和“横跨m个列”。这里,栅格布局管理器的布局方式,跟它完全一致。OK,回头再看看我们需要实现的界面。我们现在有了rowSpan和colSpan的概念,那么,我们可以把那张界面布局图变换一下:我们把交叉的这些线全部延伸开,可以看到,整个界面被拆分成了34个单元格,此时,我们就会惊呼,哈哈,这不就是规规矩矩的栅格了吗(虽然它的每个单元格不是一样大,但是没关系,至少行和列都是规矩的了)。OK,那就开始我们的界面布局吧。为了方便观察,我在每个单元格里标注上他们的编号:首先看Quit按钮,它起始于(0,0),横跨3个单元格,也就是colSpan=3,所以:10 m_Layout-addWidget(m_QuitButton, 0, 0, 1, 3); 然后是“Centigrade”,这个Label起始于(1,0),横跨2个单元格,也就是colSpan=2,所以:11 m_Layout-addWidget(m_CenLabel, 1, 0, 1, 2); 然后是“Fahrenheit”,这个Label起始于(1,2),它刚好占用1个单元格,所以没有rowSpan和colSpan(或者说rowSpan和colSpan都是1),所以:12 m_Layout-addWidget(m_FahLabel, 1, 2); 再然后是“0”这个Label,它起始于(2,0),纵越2个单元格,rowSpan=2,所以:13 m_Layout-addWidget(m_Label, 2, 0, 2, 1); 再然后是Slider,它起始于(2,1),纵越2个单元格,rowSpan=2,所以:14 m_Layout-addWidget(m_Slider, 2, 1, 2, 1); 再然后是LCDNumber,它起始于(2,2),占用一个单元格,所以:15 m_Layout-addWidget(m_LCDNumber, 2, 2); 最后是Dial表盘,它起始于(3,2)占用一个单元格,所以:16 m_Layout-addWidget(m_LCDNumber, 3, 2); OK,至此,我们的整个界面布局就完成了,鼓掌 :-)跟使用水平布局管理器和垂直布局管理器的组合方式相比,使用栅格布局管理器只需要消耗一个布局管理器即可完成整个界面的布局。但是这种方式的一个最大的缺点是,需要事先精确设计好每个部件的位置和占用尺寸,在部件数量比较大的情况下,仅仅使用栅格布局管理器就显得力不从心了。所以,在做界面布局的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中考语文一轮复习:统编教材文言文背诵27篇 常考必背知识点汇编
- 医学生基础医学 骨质疏松护理课件
- Unit 3 Weather(单元测试提升卷)-2025人教精通版四年级英语上册
- Unit 2 重点词汇、词性转换、词义辨析及重难点句型梳理-人教版八年级英语上册
- 医学脑机接口诊疗环境场景切换案例教学课件
- 2026年深圳中考数学专项复习 解答中档题型:圆的计算与证明(原卷+解析版)
- 2026年人教版九年级数学上册复习:垂径定理的四类综合题型(压轴题专项训练)原卷版+解析
- TXJBX0097-2025农产品质量安全区块链追溯技术规范
- 第三方支付发展对我国商业银行业务的挑战分析-以支付宝对例
- 《JBT 6367-1992 保护拖链 型式尺寸》(2026年)实施指南
- 2025年洛阳市城乡一体化示范区招聘城市管理辅助人员130名笔试考试参考试题及答案解析
- 经皮冠状动脉介入治疗术后口服抗栓策略优化专家共识2026
- 2025年垫江县辅警协警招聘考试真题及参考答案详解1套
- 掘进队长考试题库及答案
- (2025)全国小学生“学宪法、讲宪法”活动知识竞赛题库及答案
- 培训机构学管师培训
- 功能性训练培训
- 2024年宜昌市西陵区人民医院医疗卫生专业技术人员招聘考试真题
- 买卖当归合同协议书
- 产品研发协议书范本
- 2025年中国铁路青藏集团有限公司招聘全日制普通高校大专(高职)毕业生笔试题库(二)附答案解析
评论
0/150
提交评论