如果你有一个 QImage 包裹在 QLabel 中,当你调整窗口大小并保持纵横比时是否可以放大或缩小它(这样图像就不会扭曲)?我发现它可以使用 setScaledContents() 进行缩放,并且您可以设置最小和最大尺寸,但图像仍然会失去其外观。
如果可以用 Python 来解释那就太好了(因为我不懂 C++),但我会尽力而为。 :-)
提前致谢!
最佳答案
我将其显示为 C++,这就是我正在查看的文档所在的内容。转换为 python 应该不会太困难。
您需要创建 QLayoutItem
的自定义派生类,它重写 bool hasHeightForWidth()
和 int heightForWidth(int width)
以保留纵横比以某种方式。您可以传入图像并查询它,也可以直接设置比率。您还需要确保 widget()
函数返回指向正确标签的指针。
完成后,您可以像添加小部件一样将布局项添加到布局中。因此,当添加标签时,请将其更改为使用自定义布局项类。
我还没有实际测试过这些,所以目前它只是一个理论上的解决方案。如果需要的话,我不知道有什么方法可以通过设计器来完成此解决方案。
关于python - 如何在 (Py)Qt 中以统一的纵横比进行缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1631574/