网络上查都是询问如何让元件重叠...
我的程式是要做动态加载图片
就像网络的线上看漫画那样,还没看到的图片先别加载
等scrollBar滑到了再来加载
程式初期会去读取这个漫画有n页
便会生成n个QLabel插入QScrollArea 里的 QGridLayout (使用VBoxLayout仍是会重叠)
然后我有一个按钮
按下去之后会根据当下视窗的宽度
对每个QLabel setFixSize(newSize);
以及里头的pixmap进行 QPixmap newPix = pixmap->scaled(
newSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
把每个QLabel以及里面的pixmap拉成与视窗同宽
这时候我发现我后面读取加载的图,会重叠较早读取的图
原本我以为是我的newSize计算错误
但花了一段时间debug发现我的newSize是正确的
然后也测试sizePolicy,无论是否设定为Fixed,QLabel都会重叠
最神奇的地方是: 当我把视窗的宽缩小到一定的程度
这些QLabel竟然就不会重叠,达成了我一开始想要的效果了!!!
但只要视窗的宽超过一定的程度,QLabel里的图就会重叠
而且视窗的宽越大,重叠的部分也就越大。
想请问我到底哪边出的问题....
以下是部分原始码
https://pastebin.com/zLZ0kSaf