1
我一直在追蹤一個可以歸結爲此的錯誤 - 如果在滾動區域內顯示圖像標籤,標籤將不會調整爲圖像的尺寸大小如果QLabel::setPixmap()
被稱爲之後QScrollArea::setWidget()
。QLabel :: setPixmap()和QScrollArea :: setWidget()
這個例子說明了這個問題,只需用你的計算機上的一些真實圖像替換/path/to/some/image.png
:
QScrollArea *scrollArea = new QScrollArea;
QLabel *label = new QLabel(scrollArea);
scrollArea->setWidget(label);
label->setPixmap(QPixmap("/path/to/some/image.png"));
scrollArea->show();
如果你換行setWidget()
之前調用setPixmap()
,標籤將被適當調整。
爲什麼會發生這種情況,以及如何正確強制標籤爲resize
?
OK,我測試了它和它的作品,但爲什麼呢?文檔說,如果這個屬性是真的「滾動區域將自動調整窗口小部件的大小以避免滾動條」,這似乎與問題無關。另外,文檔說**不管這個屬性**我都可以通過編程來調整標籤,「滾動區域會自動調整到新的大小。」所以它應該工作,即使沒有它。那麼是什麼給了? – sashoalm
@sashoalm如果您未將'widgetResizable'設置爲true,則該小部件將保持其初始大小,直到其他大小調整爲止(例如手動)。 – thuga
不'setPixmap()'也調整它的大小?我認爲它在代碼的某個地方調用了'resize()',儘管我試圖在Qt中進行跟蹤,但找不到調整大小的任何東西。 – sashoalm