Qt 当出现滚动条时,如何调整QScrollArea的大小(因此只需要一个滚动条)?

Qt 当出现滚动条时,如何调整QScrollArea的大小(因此只需要一个滚动条)?,qt,qscrollarea,Qt,Qscrollarea,我有一个splitview,左手边有许多按钮。我把它们放在一个滚动条中,这样当容器布局太短时它们就不会被压扁;但我似乎只有两个选择: 1:QScrollArea不会调整视图的大小,因此当窗口太短时,垂直滚动条会导致按钮被阻止(从一侧到另一侧),并且水平滚动条也会出现 2:QScrollArea尝试调整其包含的小部件的大小(使用setWidgetResizeable(true)),但将其放在相同的较小尺寸内,这会导致按钮上的一些文本从侧面剪掉 我想要的是QScrollArea保持小部件的默认大小

我有一个splitview,左手边有许多按钮。我把它们放在一个滚动条中,这样当容器布局太短时它们就不会被压扁;但我似乎只有两个选择:

1:QScrollArea不会调整视图的大小,因此当窗口太短时,垂直滚动条会导致按钮被阻止(从一侧到另一侧),并且水平滚动条也会出现

2:QScrollArea尝试调整其包含的小部件的大小(使用
setWidgetResizeable(true)
),但将其放在相同的较小尺寸内,这会导致按钮上的一些文本从侧面剪掉


我想要的是QScrollArea保持小部件的默认大小(水平方向),并在它认为必要时(垂直方向)将其自身扩展为滚动条大小。在这个分割视图中,右侧有足够的空间,我更希望滚动区域变宽并扩展到左侧。

我有一个类似的情况,通过覆盖子体中的qscrolrea::sizeHint()解决了这个问题

#包括
#包括
MyScrollara类:公共QScrollara类
{
Q_对象
公众:
QSize sizeHint()常量重写
{
auto newSize=qscrolrea::sizeHint();
newSize.setWidth(newSize.width()
+垂直滚动条()->sizeHint().width();
返回新闻大小;
}
};