如何将用纯python动态创建的按钮添加到用kivy语言编写的kivy布局中?

2024-06-17 10:43:33 发布

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

我的问题是,我需要创建一个基于可变网格正方形数量的按钮网格,并将它们放置在网格布局上,并使用屏幕管理器将它们显示在屏幕上。我知道如何使用简单的for循环在纯python中完成这项工作,但是我用kivy语言编写了程序的布局,我不知道如何将按钮添加到网格布局中,因为我不知道如何在kv文件中正确引用它们。相关的python代码是:

def buildMap():
    index = 0
    for index in range(0, numberOfGridBlocks):
        mainMap.ids["Map"].add_widget(Button())
        index = index + 1
buildMap() 

kv文件的相关部分是:

ScreenManagement:
    MainMenuScreen:
    NewGameMenuScreen:
    JoinGameMenuScreen:
    TutorialMenuScreen:
    SettingsMenuScreen:
    MapScreen:

<MenuButton>:
    on_press: app.menuButtonPressed()
    size_hint_y: .125
    background_normal: "images/button.png"
    background_down: "images/buttonPressed.png"

<Button>:

<BoxLayout>:
    orientation: "vertical"
<MapLayout>:

<MapScreen>:
    name: "mapScreen"
    MapLayout:
        id: "Map"
        cols: 5

Tags: 文件网格mapforindex屏幕pngbutton