为什么我的 Enaml ImageView 不能缩小?
Why won't my Enaml ImageView scale down?
这是一个简单的 Enaml 文件,用于显示单个图像 - 800x1210 pixel image。
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
windows 打开相当大以适合整个图像,但是当我尝试调整 window 的大小时,它不会缩小 - 图像无法缩小,即使虽然 scale_to_fit
是真的。另一方面,它将允许 window 调整得更大,但(正确地)不会放大图像 - 它只会在其周围添加更多 space。
实验,我将 allow_upscaling
设置为 True,它允许图像变大,但不会缩小。它知道如何缩放,但不会缩小。
好吧,也许 ImageView 必须有最小尺寸,所以我补充说:
minimum_size = (100, 100)
这应该覆盖为 ImageView 小部件计算的 "intelligent minimum size",但没有区别。
我是 Enaml 的新手,所以我怀疑存在基本的误解。
当周围 window 调整大小时,我需要做什么才能获得 ImageView 以允许缩小大图像?
版本:
- Python 3.6.3(v3.6.3:2c5fed8,2017 年 10 月 3 日,18:11:49)[MSC v.1900 64 位 (AMD64)] on win32
- enaml==0.10.2
- PyQt5==5.10.1
如果我添加
resist_width = 'weak'
resist_height = 'weak'
它将允许我缩小规模。
但是,默认情况下它也会以较小的尺寸打开。
将resist_width
和resist_height
设置为'weak'
是正确答案。您可以在小部件上设置其他约束以赋予其首选大小:
ImageView:
resist_width = 'weak'
resist_height = 'weak'
constraints = [(width == 640) | 'weak', (height == 480) | 'weak']
这是一个简单的 Enaml 文件,用于显示单个图像 - 800x1210 pixel image。
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
windows 打开相当大以适合整个图像,但是当我尝试调整 window 的大小时,它不会缩小 - 图像无法缩小,即使虽然 scale_to_fit
是真的。另一方面,它将允许 window 调整得更大,但(正确地)不会放大图像 - 它只会在其周围添加更多 space。
实验,我将 allow_upscaling
设置为 True,它允许图像变大,但不会缩小。它知道如何缩放,但不会缩小。
好吧,也许 ImageView 必须有最小尺寸,所以我补充说:
minimum_size = (100, 100)
这应该覆盖为 ImageView 小部件计算的 "intelligent minimum size",但没有区别。
我是 Enaml 的新手,所以我怀疑存在基本的误解。
当周围 window 调整大小时,我需要做什么才能获得 ImageView 以允许缩小大图像?
版本:
- Python 3.6.3(v3.6.3:2c5fed8,2017 年 10 月 3 日,18:11:49)[MSC v.1900 64 位 (AMD64)] on win32
- enaml==0.10.2
- PyQt5==5.10.1
如果我添加
resist_width = 'weak'
resist_height = 'weak'
它将允许我缩小规模。
但是,默认情况下它也会以较小的尺寸打开。
将resist_width
和resist_height
设置为'weak'
是正确答案。您可以在小部件上设置其他约束以赋予其首选大小:
ImageView:
resist_width = 'weak'
resist_height = 'weak'
constraints = [(width == 640) | 'weak', (height == 480) | 'weak']