无法更改图像大小
Unable to change image size
我在 BoxLayout 中使用图像,其中 size_hint_y
设置为 None
图像似乎对任何改变大小的尝试都没有反应,
我怀疑这个问题只出现在使用 size_hint_y:None
如果我删除 size_hint_y 参数,它工作正常,但这样做会影响其他小部件的定位,所以我如何在不避免 size_hint_y:None
参数的情况下执行此操作
代码
from kivy.app import App
from kivy.lang import Builder
Kv=("""
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:5
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:20
Image:
size_hint:None,None
source:"/storage/3666-3432/Download/Lion.jpg"
""")
class MyApp(App):
def build(self):
return Builder.load_string(Kv)
MyApp().run()
编辑
from kivy.app import App
from kivy.lang import Builder
Kv=("""
ScrollView:
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:5
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:20
Image:
height:2000
size_hint:None,None
source:"/storage/3666-3432/Download/Lion.jpg"
""")
class MyApp(App):
def build(self):
return Builder.load_string(Kv)
MyApp().run()
在上面的代码中你可以看到当使用高度参数时,图像大小没有改变,而是在图像的两边创建了一个巨大的space
您将 Image
height
设置为 2000,因此 Image
小部件将具有 2000 的 height
。width
Image
将是默认值 100,因为您没有设置该值,而 size_hint_x
对于 Image
是 None
。但是,默认情况下,Image
小部件具有 False
的 allow_stretch
和 True
的 keep_ratio
,因此纹理将是 100 宽和适当比例的高度(不是 2000)。
我不完全确定你想要完成什么,但如果你想让 Image
伸展,你应该将 allow_stretch: True
添加到 Image
并添加一个width
为 Image
,或将 size_hint:None,None
更改为 size_hint:1,None
。
我在 BoxLayout 中使用图像,其中 size_hint_y
设置为 None
图像似乎对任何改变大小的尝试都没有反应,
我怀疑这个问题只出现在使用 size_hint_y:None
如果我删除 size_hint_y 参数,它工作正常,但这样做会影响其他小部件的定位,所以我如何在不避免 size_hint_y:None
参数的情况下执行此操作
代码
from kivy.app import App
from kivy.lang import Builder
Kv=("""
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:5
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:20
Image:
size_hint:None,None
source:"/storage/3666-3432/Download/Lion.jpg"
""")
class MyApp(App):
def build(self):
return Builder.load_string(Kv)
MyApp().run()
编辑
from kivy.app import App
from kivy.lang import Builder
Kv=("""
ScrollView:
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:5
BoxLayout:
orientation:'vertical'
size_hint_y:None
height:self.minimum_height
spacing:20
Image:
height:2000
size_hint:None,None
source:"/storage/3666-3432/Download/Lion.jpg"
""")
class MyApp(App):
def build(self):
return Builder.load_string(Kv)
MyApp().run()
在上面的代码中你可以看到当使用高度参数时,图像大小没有改变,而是在图像的两边创建了一个巨大的space
您将 Image
height
设置为 2000,因此 Image
小部件将具有 2000 的 height
。width
Image
将是默认值 100,因为您没有设置该值,而 size_hint_x
对于 Image
是 None
。但是,默认情况下,Image
小部件具有 False
的 allow_stretch
和 True
的 keep_ratio
,因此纹理将是 100 宽和适当比例的高度(不是 2000)。
我不完全确定你想要完成什么,但如果你想让 Image
伸展,你应该将 allow_stretch: True
添加到 Image
并添加一个width
为 Image
,或将 size_hint:None,None
更改为 size_hint:1,None
。