如何允许(Py)Qt中的均匀高宽比缩放?
问题描述:
如果将QImage包装在QLabel中,当调整窗口大小并保持纵横比(所以图像不会变形)时,可以向上还是向下缩放它?我发现它可以使用setScaledContents()进行缩放,并且可以设置最小和最大尺寸,但图像仍然会失去其方面。如何允许(Py)Qt中的均匀高宽比缩放?
这将是很好,如果这可以解释使用Python(因为我不知道c + +),但我会拿我能得到的。 :-)
在此先感谢!
答
我把这个显示为C++,这就是我正在查看的文档。它不应该太难转换为python。
您需要创建QLayoutItem
的自定义衍生产品,该自定义衍生产品会覆盖bool hasHeightForWidth()
和int heightForWidth(int width)
以某种方式保留宽高比。您可以传递图像并进行查询,也可以直接设置比例。您还需要确保widget()
函数返回指向正确标签的指针。
一旦完成,您可以使用与小部件相同的方式将布局项目添加到布局。因此,当您的标签被添加时,将其更改为使用您的自定义布局项目类。
我还没有真正测试过这个,所以这是一个理论上的解决方案。如果需要的话,我不知道有什么方法可以通过设计师来实现这个解决方案。
嗨,谢谢!这看起来可能会起作用,但我想我可能暂时让它滑动。我认为这超出了我的Qt能力范围,我的期限比我更愿意提前。在我接近完成之后,我会试着重新审视这个问题,然后和你一起回去! – jgoney