python - 如何在 (Py)Qt 中以统一的纵横比进行缩放?

标签 python user-interface qt pyqt

如果你有一个 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/

相关文章:

Python : pygame. key.get_pressed 不起作用

python - Django case when else in filter

winforms - 我应该使用什么设计模式来将对象模型状态的更改同步到 GUI 的状态?

python - 使用修改键在 pyqt4 中拖放

python - 如何在 scikit-learn 中使用随机 Logistic 回归找到最低的正则化参数 (C)?

java - 如何正确输出java全屏

c# - WPF 样式/模板继承

c++ - 删除行时 QModelIndex 变得无效

javascript - 如何从 qt 代码访问 JavaScript 中使用的变量值

python - 将字段从一种模型继承到另一种模型 - Odoo v9 社区