Qt : 简单介绍五种界面布局方式!(非常简单)
Qt提供了方便快捷的界面布局方式,包括水平布局,垂直布局,网格布局,表单布局,以及分组布局的方式,避免了手动排布的繁琐,能够覆盖大部分设计需要;
Qt提供了方便快捷的界面布局方式,包括水平布局,垂直布局,网格布局,表单布局,以及分组布局的方式,避免了手动排布的繁琐,能够覆盖大部分设计需要;以下简单介绍五种布局的实现方式:
一、水平布局
无论哪种布局,首先都需要对其头文件进行声明,水平布局需要声明头文件<QHBoxLayout>,然后需要创建水平布局对象,如cmdLayout,随后使用addWidget将需要进行水平布局的两个控件关联。如下图:
实现排布效果如下():
二、垂直布局
与水平布局类似,需要声明的头文件为<QVBoxLayout>,创建对象与关联方式与水平布局相似;创建垂直布局对象后,关联需要布局的控件;此外该函数可以将此前创建的对象再次进行布局,即将此前已经进行水平布局的对象如cmdLayout作为此次垂直布局的对象参与布局;
实现的效果如下图:
可见,如确定,取消,浏览三个按钮按照水平布局后,参与了提示行,输入行的垂直布局;
三、网格布局
网格布局就比如计算器的按键等,都属于网格布局。网格布局需要引入头文件<QGridLayout>;addWidget的参数中数字代表控件的坐标,且从0开始编号,如,第一行第一列为(0,0),第二行第三列为(1,2);
四、表单布局
通过简单的垂直布局,或者水平布局也是可以实现的,但是代码较为复杂,且设置随窗口大小缩放需要设置每一列的拉伸洗漱,所以可以通过表单布局直接实现。声明的头文件为<QFormLayout>
QFormLayout 底层是用 QGridLayout 网格布局实现的,但需要注意的是,QFormLayout 只包含 2 列(不限制行数),且第一列放置标签,第二列放置输入框。
五、分组布局
我们经常会遇到点击某个按钮后,界面会随点击的按钮不同而产生相应的变化,例如使用excel进行设置时,选择的选项卡不同,对应的显示内容就不同,例如选择“自定义功能区”“加载项”等标签时,右边黄色圆圈部分的内容会产生改变;此时可以借助分组布局来实现;
分组布局需要声明的头文件为<QStackedLayout>,声明后将三个控件加入到分组布局中,如下图:
但是分组布局自身并不能实现界面内容切换的功能,需要借助QListWidget来实现。如下图,创建一个列表后,添加三个选项按钮,文本框,和输入框;
随后将QListWidget和QStackedLayout水平布局,如下图:
既可以实现理想的功能;
除此之外,在程序中可以通过addStretch()的方式在布局中添加空白列,使之更加美观;当然使用五种布局方式灵活组合,即可以实现多种设计需要;
最后,当进行完所有控件排布后,记得对该窗口进行头文件声明<Qwidget>,并通过如下三行创建窗口对象:
知识点来自于:
B站up:bestswinger;
C语言中文网:Qt布局管理详解(5种布局控件)
更多推荐
所有评论(0)