社区
Qt
帖子详情
关于QGridLayout管理控件的问题~~
yingwenzifu
2012-05-16 04:15:59
问题是这样的:
1.一个固定大小的QWidget,使用QGridLayout管理放置的label;
2.假设需要放置5个label,而且只放置一行.
当这5个label的width之和,远小于QWidget的width时,label之间的间隙非常大,请问:
有没有办法,在不改变label大小的情况下,使这5个label缩小之间的距离到指定的大小,并且靠左对齐~~~~
...全文
749
11
打赏
收藏
关于QGridLayout管理控件的问题~~
问题是这样的: 1.一个固定大小的QWidget,使用QGridLayout管理放置的label; 2.假设需要放置5个label,而且只放置一行. 当这5个label的width之和,远小于QWidget的width时,label之间的间隙非常大,请问: 有没有办法,在不改变label大小的情况下,使这5个label缩小之间的距离到指定的大小,并且靠左对齐~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huohu8023
2012-11-23
打赏
举报
回复
Horizontal Spacer为弹簧设置一个固定宽度,就能把控件撑开。
yingwenzifu
2012-05-22
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
为弹簧设置一个固定宽度,就能把控件撑开。
对了,别忘了在最右边也放一根,让它可伸缩,这样就能把控件都顶到左边去。
[/Quote]
setSizeConstraint(QLayout::SetFixedSize)
这一个函数就够了~~~
jdwx
2012-05-22
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 5 楼 的回复:
为弹簧设置一个固定宽度,就能把控件撑开。
对了,别忘了在最右边也放一根,让它可伸缩,这样就能把控件都顶到左边去。
老大,有没有更厉害的方法啊,因为我需要动态的添加和删除这些label,加弹簧很麻烦的
[/Quote]
两个QHBoxLayout嵌套,里面的和弹簧一组
yingwenzifu
2012-05-16
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
派生一个QWidget出来,里面放上一个QLabel,调整好它和Widget间的距离。动态添加这个玩意就行了,连弹簧也省了
[/Quote]
这样做也可以,但是有点呆板了,我在QWidget上放了一个QScrollArea,然后可以通过resize()设置scrollAreaWidget的width就可以搞定了,郁闷的是,不知道scrollAreaWidget哪个参数没设置好,resize()这个函数起不了作用~~
xiachm
2012-05-16
打赏
举报
回复
派生一个QWidget出来,里面放上一个QLabel,调整好它和Widget间的距离。动态添加这个玩意就行了,连弹簧也省了
yingwenzifu
2012-05-16
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
为弹簧设置一个固定宽度,就能把控件撑开。
对了,别忘了在最右边也放一根,让它可伸缩,这样就能把控件都顶到左边去。
[/Quote]
老大,有没有更厉害的方法啊,因为我需要动态的添加和删除这些label,加弹簧很麻烦的
xiachm
2012-05-16
打赏
举报
回复
为弹簧设置一个固定宽度,就能把控件撑开。
对了,别忘了在最右边也放一根,让它可伸缩,这样就能把控件都顶到左边去。
xiachm
2012-05-16
打赏
举报
回复
在它们中间放上几根“弹簧”就行了。看看设计器工具栏里的那个Horizontal Spacer
yingwenzifu
2012-05-16
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
假设需要放置5个label,而且只放置一行.
QHBoxLayout 这个是行
先放到 行布局,然后在添加到grid里面
[/Quote]
换成QHBoxLayout也一样, 跟使用哪种布局管理器貌似没有什么关系~~
yingwenzifu
2012-05-16
打赏
举报
回复
换成QHBoxLayout也一样, 跟使用哪种布局管理器貌似没有什么关系~~
shen_wei
2012-05-16
打赏
举报
回复
假设需要放置5个label,而且只放置一行.
QHBoxLayout 这个是行
先放到 行布局,然后在添加到grid里面
【Qt】网格布局
管理
器Q
Grid
Layout
Qt中提供Q
Grid
Layout
用来实现网格布局的效果。
【Qt】布局
管理
器
控件
QVBox
Layout
、QHBox
Layout
、Q
Grid
Layout
、QForm
Layout
布局
管理
器
控件
Qt
控件
在布局内(QForm
Layout
、Q
Grid
Layout
等)的动态添加与删除
项目场景: 在项目开发过程中,比如报警信息的显示,如果将所有的报警信息都添加至布局内,再以
控件
隐藏与显示的方式进行报警,这种方法无疑是最简单的,但是如果报警种类过多,但往往需要显示的很少,在界面里面去一个个拖
控件
或者代码添加都太麻烦,这就需要动态添加与删除了!
问题
描述: 就以下图为例吧: 因为电池电芯不固定,可能是8芯可能是16芯,所以1、2、3部分都是动态更新的。 且都使用了groupbox容器,不同的是1、2放置form
layout
布局,3放置
grid
layout
布局。 代码: 动态添加 添加代
[Qt 教程之Widgets模块] —— Q
Grid
Layout
栅格布局
与`QBox
Layout
`只能在一个方向布局不同,`Q
Grid
Layout
`可以在网格中布局(垂直和水平两个方向)。
QT Q
Grid
Layout
网格布局
控件
本文详细的介绍了Q
Grid
Layout
控件
的各种操作,例如:新建界面、
控件
布局、获取行、获取列、某行伸缩系数、某列伸缩系数、某列最小宽度、某行最小宽度、总单元格数、移除布局条目、移动布局条目、其它文章等操作。 实际开发中,一个界面上可能包含十几个
控件
,手动调整它们的位置既费时又费力。布局
管理
器可以完成两件事:自动调整
控件
的位置,包括
控件
之间的间距、对齐等;当用户调整窗口大小时,位于布局
管理
器内的
控件
也会随之调整大小,从而保持整个界面的美观。 本系列QT全面详解文章目前共有二
Qt
21,499
社区成员
26,692
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章