網路上查都是詢問如何讓元件重疊...
我的程式是要做動態載入圖片
就像網路的線上看漫畫那樣,還沒看到的圖片先別載入
等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