如果將QImage包裝在QLabel中,當調整窗口大小並保持縱橫比(所以圖像不會變形)時,可以向上還是向下縮放它?我發現它可以使用setScaledContents()進行縮放,並且可以設置最小和最大尺寸,但圖像仍然會失去其方面。如何允許(Py)Qt中的均勻高寬比縮放?
這將是很好,如果這可以解釋使用Python(因爲我不知道c + +),但我會拿我能得到的。 :-)
在此先感謝!
如果將QImage包裝在QLabel中,當調整窗口大小並保持縱橫比(所以圖像不會變形)時,可以向上還是向下縮放它?我發現它可以使用setScaledContents()進行縮放,並且可以設置最小和最大尺寸,但圖像仍然會失去其方面。如何允許(Py)Qt中的均勻高寬比縮放?
這將是很好,如果這可以解釋使用Python(因爲我不知道c + +),但我會拿我能得到的。 :-)
在此先感謝!
我把這個顯示爲C++,這就是我正在查看的文檔。它不應該太難轉換爲python。
您需要創建QLayoutItem
的自定義衍生產品,該自定義衍生產品會覆蓋bool hasHeightForWidth()
和int heightForWidth(int width)
以某種方式保留寬高比。您可以傳遞圖像並進行查詢,也可以直接設置比例。您還需要確保widget()
函數返回指向正確標籤的指針。
一旦完成,您可以使用與小部件相同的方式將佈局項目添加到佈局。因此,當您的標籤被添加時,將其更改爲使用您的自定義佈局項目類。
我還沒有真正測試過這個,所以這是一個理論上的解決方案。如果需要的話,我不知道有什麼方法可以通過設計師來實現這個解決方案。
將圖像轉換爲QPixmap
(使用QPixmap.fromImage(img)
)然後,您可以使用scaledToHeight()
。
嗨,謝謝!這看起來可能會起作用,但我想我可能暫時讓它滑動。我認爲這超出了我的Qt能力範圍,我的期限比我更願意提前。在我接近完成之後,我會試着重新審視這個問題,然後和你一起回去! – jgoney