gridlayout kivy中的图像

2024-04-19 11:35:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在kivy创建一个10x10网格的图像,但我发现所有的图像都被一个大的黑色隔开边界。它图像似乎保持不变的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函数中创建多个boxlayouts。在


Tags: run图像selfboxaddreturnpngdef
1条回答
网友
1楼 · 发布于 2024-04-19 11:35:19
self.children[len(self.children)-1]

这可以用self.children[-1]来写得更简洁明了。在

^{pr2}$

默认情况下,图像小部件不会将图像拉伸到实际尺寸之外(在本例中,显然是100x100)。要更改此设置,只需设置其allow_stretch属性:

 add_widget(Image(source=random.choice(["rock.png","rock2.png"], allow_stretch=True))

如果您想让它在不同的方向上拉伸不同的量,您也可以添加keep_ratio=False。在

相关问题 更多 >