gridlayout kivy中的图像
Posted
技术标签:
【中文标题】gridlayout kivy中的图像【英文标题】:Image in gridlayout kivy 【发布时间】:2014-07-16 15:25:54 【问题描述】:我正在尝试在 kivy 中创建一个 10x10 的图像网格,但我发现所有图像都被一个大的黑色边框隔开。图像似乎保持在恒定的 0f 100x100 像素。
我目前使用的代码不包含 .kv 文件:
class SkyBox(BoxLayout):
def update(self):
for i in range(100):
self.children[len(self.children)-1].add_widget(Image(source=random.choice(["rock.png","rock2.png"]))
class SkyGame(Widget):
def run(self):
box=SkyBox()
box.add_widget(GridLayout(cols=10))
box.update()
return box
class SkyApp(App):
def build(self):
return SkyGame().run()
if __name__=="__main__":
SkyApp().run()
还需要注意的是,我的最终结果需要在更新函数中创建多个boxlayouts。
【问题讨论】:
【参考方案1】:self.children[len(self.children)-1]
这可以写成self.children[-1]
更简洁明了。
add_widget(Image(source=random.choice(["rock.png","rock2.png"]))
默认情况下,图像小部件不会将图像拉伸到超出其实际尺寸(在这种情况下,显然是 100x100)。要改变这一点,只需设置其allow_stretch
属性:
add_widget(Image(source=random.choice(["rock.png","rock2.png"], allow_stretch=True))
如果你想让它在不同方向拉伸不同的量,你也可以添加keep_ratio=False
。
【讨论】:
谢谢。看来我没有尝试过“allow_stretch”和“keep_ratio”的组合。以上是关于gridlayout kivy中的图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Kivy 的 Scrollable GridLayout 中显示图像