QT的水平布局详解

        水平布局(QHBoxLayout)有许多属性,这篇文章我们详细了解下这些属性都是怎么使用的

界面设置水平布局

        点击水平布局控件(图中QHBoxLayout),在右下角会展示这个控件相关属性

1. layoutName:控件的名称

2. layoutLeftMargin: 控件的左边距;比如我们设置这个值为100,可以看到内部的button距离左侧的边距有了变化

3、layoutTopMargin、layoutRightMargin、layoutBottomMargin:同理,这三个属性分别对应上边距、右边距和下边距,设置后效果如图:

4、layoutSpacing:控件间的间距,效果如图

5、layoutStretch:控制各个控件所占的比例,列表中的每个整数表示对应控件的伸缩因子,列表长度应与布局中的控件数量相等,伸缩因子越大,控件在布局中所占的空间就越大

6、layoutSizeConstraint:控件在适应不同布局大小时,子控件的大小和位置如何变化

  • SetDefaultConstraint:使用默认的尺寸,布局没有特定的约束
  • SetNoConstraint:布局没有特定的尺寸策略,保持用户设定的已有属性
  • SetMinimumSize:布局和其子控件的尺寸至少为设定的最小值,可以随着窗口的增大而增大
  • SetFixedSize:控件大小为固定值,不会随着布局大小的变化而变化
  • SetMaximumSize:限制控件的最大尺寸,可以随着窗口缩小而缩小
  • SetMinAndMaxSize:布局和其子控件的尺寸被限制在设定的最小值和最大值之间

以上是界面编辑水平布局属性的方式,接下来我们看下如何通过代码实现上面的水平布局

代码编辑

1、点击根目录,新建一个Qt设计器界面类的文件

2、选择Widget模板,命名一个myHLayout的界面文件

3、创建好后,双击myHLayout.cpp,在这里我们编辑代码

4、如图中代码,我们先创建一个水平布局,在创建三个button并放进去,这样就编辑好了,然后我们修改main.cpp来展示这个新页面看下效果

5、可以看到pushButton水平排列在窗口中,水平布局就加好了

6、我们可以为水平布局设置一些属性,详见图中代码及注释

7、再次运行看下效果

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt中,水平布局可以通过QHBoxLayout来实现。根据提供的引用内容,有几种方法可以设置水平布局的对齐方式、方向和拉伸系数。 首先,对于对齐方式,可以使用addWidget()函数的第三个参数来设置。例如,使用Qt::AlignLeft | Qt::AlignTop可以将按钮p1水平居左、垂直居上。同样地,使用Qt::AlignLeft | Qt::AlignBottom可以将按钮p2水平居左、垂直居下。\[1\] 其次,对于布局的方向,可以使用setDirection()函数来设置。例如,使用QBoxLayout::RightToLeft可以将布局设置为自右向左。\[2\] 最后,对于拉伸系数,可以使用setStretchFactor()函数来设置。例如,使用pLayout->setStretchFactor(p1, 1)可以将按钮p1的拉伸系数设置为1,使用pLayout->setStretchFactor(p2, 2)可以将按钮p2的拉伸系数设置为2。\[3\] 如果在Qt水平布局不起作用,可能是由于布局没有正确设置或者布局的父窗口没有正确设置。请确保布局对象被正确添加到父窗口中,并且布局的相关属性被正确设置。 希望这些信息对您有所帮助! #### 引用[.reference_title] - *1* *2* *3* [C++Qt 水平布局(QHBoxLayout)](https://blog.csdn.net/m0_60259116/article/details/128162977)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值