关于Qt碰到的QScrollArea滚动条不出现问题

问题

在做仿B站标签创建框时候,用到了ScrollArea,平时这个控件很少用,所以这次使用时候又遇到了滚动问题。我直接往scroll里丢了一个layout,但是无论我layout怎么撑大,scroll始终没有出现滚动条。所以我试着打印scroll内部的widget的size,结果直接报错。

QScrollArea area = new QScrollArea;
auto pWidget = area->widget();

我发现这个pWidget竟然是空的,类似MainWindow的centralwidget,Scroll的内容也是放在一个widget里面。
关于Qt碰到的QScrollArea滚动条不出现问题_第1张图片
但是new出来的scroll竟然没有这个东西。
查了文档后,发现得使用SetWidget,通过这个函数在scroll内部添加一个widget。添完之后,滚动条终于正常出现了。
之前很早写过一次关于QScrollArea控件添加挤压问题,之前不懂事,每次都扩大scroll,但其实这是不太对的做法,因为按照现在看来,当时就是没设置存放内容的widget,所以无法滚动显示,控件才会被挤压。虽然当时隐隐约约觉得做法不对,但是一直没深究,曲线救国避过了,最后还是坑了自己。
关于Qt碰到的QScrollArea滚动条不出现问题_第2张图片

`

你可能感兴趣的:(记录,学习笔记,qt,c++)