首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的Enaml ImageView不能缩小?

为什么我的Enaml ImageView不能缩小?
EN

Stack Overflow用户
提问于 2018-05-31 00:41:45
回答 2查看 80关注 0票数 1

下面是一个显示单个图像的简单Enaml文件--一个800x1210 pixel image

代码语言:javascript
复制
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是真的。另一方面,它将允许窗口调整到更大的大小,但(正确地)不会放大图像-它只是在图像周围添加更多空间。

在实验中,我将allow_upscaling设置为True,它允许图像增长,但不能缩小。它知道如何扩展,但不会缩小规模。

好吧,也许ImageView必须有一个最小的大小,所以我添加了:

代码语言:javascript
复制
            minimum_size = (100, 100)

这应该覆盖为ImageView小部件计算的“智能最小尺寸”,但没有区别。

我是新接触Enaml的,所以我怀疑这是一个基本的误解。

当周围的窗口调整大小时,我需要做什么才能让ImageView允许缩小大图像?

版本:

win32

  • enaml==0.10.2

  • PyQt5==5.10.1

上的

  • Python 3.6.3 (v3.6.3:2c5fed8,Oct 3 2017,18:11:49) MSC v.1900 64位(AMD64)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-04 01:53:57

resist_widthresist_height设置为'weak'是正确答案。您可以在小部件上设置其他约束,以使其具有首选大小:

代码语言:javascript
复制
ImageView: 
    resist_width = 'weak'
    resist_height = 'weak'
    constraints = [(width == 640) | 'weak', (height == 480) | 'weak']
票数 2
EN

Stack Overflow用户

发布于 2018-05-31 10:14:38

如果我添加

代码语言:javascript
复制
        resist_width = 'weak'
        resist_height = 'weak'

它将允许我缩小规模。

但是,默认情况下,它也会以较小的大小打开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50609734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档