Qt QScrollArea小部件在添加子小部件时自动调整大小

Qt QScrollArea小部件在添加子小部件时自动调整大小,qt,layout,qscrollarea,Qt,Layout,Qscrollarea,我的结构如下: QScrollArea - QWidget (with QHBoxLayout) - QLabel - QLabel - QLabel ... QLabel是使用随机文本自动生成的。 如何自动更改小部件的大小以适应标签? 目前,我只能通过设置固定大小来查看小部件 解决方案: 创建QLabel后,我存储其宽度: int widthSum = 0; for ( ... ){ ... widthSum += label->si

我的结构如下:

QScrollArea
  - QWidget (with QHBoxLayout)
    - QLabel
    - QLabel
    - QLabel
    ...
QLabel是使用随机文本自动生成的。 如何自动更改小部件的大小以适应标签? 目前,我只能通过设置固定大小来查看小部件

解决方案:

创建QLabel后,我存储其宽度:

int widthSum = 0;
for ( ... ){
    ...
    widthSum += label->sizeHint().width();
}
循环之后,我将固定宽度设置为widget:

widget->setFixedWidth(widthSum);
谢谢@shobi的提示

在小部件上使用reSize()方法

resize(sizeHint()) 

陛下此方法仅适用于第一代QLabel。。。如果我清除小部件的布局并执行相同的操作,它将不起作用。也许是我的错误。谢谢你的回答+1.