如何在(Py)Qt中允许具有均匀纵横比的缩放?
-
06-07-2019 - |
题
如果在QLabel中包含QImage,在调整窗口大小并保持纵横比(因此图像不会变形)时是否可以向上或向下缩放?我发现它可以使用setScaledContents()进行缩放,并且您可以设置最小和最大大小,但图像仍然会丢失其方面。
如果可以使用Python解释(因为我不知道c ++)会很好,但我会采取我能得到的。 : - )
提前致谢!
解决方案
我将它显示为C ++,这就是我正在查看的文档。转换为python应该不会太难。
您需要创建 QLayoutItem
的自定义派生,它会覆盖 bool hasHeightForWidth()
和 int heightForWidth(int width)
以保留长宽比不知何故。您可以将图像传入并查询,也可以直接设置比率。您还需要确保 widget()
函数返回指向正确标签的指针。
完成后,您可以按照与窗口小部件相同的方式将布局项添加到布局中。因此,添加标签后,请将其更改为使用自定义布局项类。
我实际上没有测试任何这个,所以这是一个理论上的解决方案。如果需要的话,我不知道有任何办法通过设计师来做这个解决方案。
其他提示
将图像转换为 QPixmap
(使用 QPixmap.fromImage(img)
)然后,您可以使用 scaledToHeight()
。
不隶属于 StackOverflow