[英]Why won't my Enaml ImageView scale down?
這是一個簡單的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以允許縮小大圖像?
版本:
將resist_width
和resist_height
設置為'weak'
是正確的答案。 您可以在小部件上設置其他約束以使其具有首選大小:
ImageView:
resist_width = 'weak'
resist_height = 'weak'
constraints = [(width == 640) | 'weak', (height == 480) | 'weak']
如果我加
resist_width = 'weak'
resist_height = 'weak'
這將使我縮小規模。
但是,默認情況下也會以較小的尺寸打開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.