这是一个简单的 Enaml 文件,用于显示单个图像 - 一个800x1210 像素的图像。
from enaml.widgets.api import Window, Container, ImageView
from enaml.image import Image
enamldef ImageViewResizeWindow(Window):
Container:
ImageView:
image << Image(data=open("Mona_Lisa.jpg", "rb").read())
scale_to_fit = True
allow_upscaling = False
preserve_aspect_ratio = True
窗口打开得相当大以适应整个图像,但是当我尝试调整窗口大小时,它不会缩小 - 图像无法缩小,即使scale_to_fit
是 True。另一方面,它将允许将窗口调整得更大,但(正确地)不会放大图像 - 它只会在其周围增加更多空间。
进行实验,我设置allow_upscaling
为 True,它允许图像增长,但不会缩小。它知道如何扩大规模,但不会缩小规模。
好吧,也许 ImageView 必须有一个最小尺寸,所以我补充说:
minimum_size = (100, 100)
这应该覆盖为 ImageView 小部件计算的“智能最小尺寸”,但没有区别。
我是 Enaml 的新手,所以我怀疑存在基本的误解。
当调整周围窗口的大小时,我需要做什么才能获得 ImageView 以允许缩小大图像?
版本:
- Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 位 (AMD64)] 在 win32
- 搪瓷==0.10.2
- PyQt5==5.10.1