Qt 布局设置stretch,不起作用解决方法

addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())

insertStretch(int index, int stretch = 0)

setStretchFactor(QWidget *widget, int stretch)

等函数都可以设置布局中,组件的不同伸缩大小。

QHboxLayout *layout= new QHboxLayout;
layout->addWidget(btn_one,1);
layout->addWidget(btn_two,2);

这是一个水平布局,按钮1和按钮2应该占据水平方向的大小,比例是1:2的宽度。

然而有的时候,设置伸缩大小并不一定按照,你的设置展示不是你想要的效果。这个时候,就可以查看是否是控件的sizePolicy,阻碍了效果展示,可以修改响应的sizePolicy,实现想要的效果

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Qt Creator 中使用 QHBoxLayoutstretch 属性可以实现布局中的伸缩效果。stretch 是一个整数值,用于指定控件在布局中占据的额外空间比例。 在 QHBoxLayout 中,可以通过两种方式设置 stretch: 1. 使用 addStretch() 函数: ```cpp QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(widget1); layout->addWidget(widget2); layout->addStretch(); // 添加一个伸缩项 layout->addWidget(widget3); ``` 上述代码中,addWidget() 函数用于添加控件到布局中,addStretch() 函数用于添加一个伸缩项。伸缩项会占据布局中的额外空间,根据 stretch 的值来确定各个伸缩项的占比。在上述代码中,widget1 和 widget2 的尺寸是固定的,而 widget3 的尺寸会根据布局的大小动态调整。 2. 使用 setStretch() 函数: ```cpp QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(widget1); layout->addWidget(widget2); layout->addWidget(widget3); layout->setStretch(0, 1); // 设置第一个控件的 stretch 为 1 layout->setStretch(1, 2); // 设置第二个控件的 stretch 为 2 layout->setStretch(2, 1); // 设置第三个控件的 stretch 为 1 ``` 上述代码中,setStretch() 函数用于设置每个控件的 stretch 值。在这个例子中,widget1 和 widget3 的 stretch 值都为 1,而 widget2 的 stretch 值为 2。这意味着 widget2 在布局中占据的空间比 widget1 和 widget3 多一倍。 通过设置 stretch 属性,可以实现不同控件在布局中的伸缩效果。根据具体的需求,可以设置不同的 stretch 值来达到期望的布局效果。希望对你有所帮助!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值