繁体   English   中英

图像在gridlayout基维

[英]Image in gridlayout kivy

我试图以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()

还必须注意,我的最终结果需要在update函数中创建多个boxlayout。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM