• 752阅读
  • 2回复

QGridLayout中控件居中且自适应大小的问题 [复制链接]

上一主题 下一主题
离线hlhsppx123
 

只看楼主 正序阅读 楼主  发表于: 2023-03-13
回复本帖可获得1RMB金钱奖励!
每人最多可获奖1次,奖池剩余1RMB金钱 (中奖几率90%)
QRoundProgressBar * rpb = new QRoundProgressBar();
    ui->gridLayout->addWidget(rpb);
    rpb->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

在我向gridLayout中直接添加控件时,控件可以随布局变化自适应大小。
但是因为没有设置AlignmentFlag,此时如果布局变形的话控件就不会居中。
如图,放大后明显是默认偏左的。

现在改成ui->gridLayout->addWidget(rpb,0,0,Qt::AlignCenter);
后控件就失去了和布局的自适应大小,被压缩的很小,这是为什么??????
无论是什么布局方式只要我加了Qt::AlignCenter参数自适应就消失了, 放大窗口也不能改变这个控件的大小了。
设置控件Expanding也不行,请问怎么才能让控件保持在QGridLayout布局中自适应大小还能居中对齐呢???

目前ui->gridLayout是只有这一个控件的。没有添加弹簧什么的。
大佬们,帮忙解释一下.
在线snow_man_0

只看该作者 2楼 发表于: 2023-03-13
回帖奖励+ 1
ProgressBar的右边默认留了空间放文本的,所有会偏左。设置不显示文本,或调整layout的左右间隙,可以达到效果

设置Qt::AlignCenter,仅针对限制了最大尺寸的widget
离线hlhsppx123

只看该作者 1楼 发表于: 2023-03-13
为什么发不出图片
1条评分金钱+10
20091001753 金钱 +10 一般 widget 就是在 ui 编辑器里调好便用。很少手写代码构建布局。 2023-03-13
快速回复
限100 字节
 
上一个 下一个