kivy python列表到按钮文本

Posted

技术标签:

【中文标题】kivy python列表到按钮文本【英文标题】:kivy python List to button text 【发布时间】:2016-06-07 04:23:59 【问题描述】:

尝试用 myList["One", "Two", "Three"] 的内容填充三个按钮的文本 btn1 = myList[1] 等

myList 将从 csv 文件中填充

from kivy.app import App

from kivy.lang import Builder

kv = """
    BoxLayout:

    Button:
        id: btn1
    Button:
        id: btn2
    Button:
        id: btn3
"""


class TestApp(App):

    def build(self):
        my_box = Builder.load_string(kv)
        my_ShowList = ['My Way', 'Wine Drinker', 'Boots']

        '''
        This is where I get lost
        want to use for loop to populate Button text with my_ShowList items
        '''


        return my_box


if __name__ == '__main__':

    TestApp().run()enter code here`

【问题讨论】:

你能提供更多细节吗?显示一些代码? 尽可能添加代码 你绝对应该格式化你的代码。欲了解更多信息,请访问Help Center 我想为 kv builder 字符串使用 kv 文件,以保持 Layout 独立并尽可能使用 kv 功能 【参考方案1】:

你可以完全用python代码来做:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button


class TestClass(App):
    def build(self):
        my_box = BoxLayout()
        my_show_list = ["My Way", "Wine Drinker", "Boots"]
        my_box.my_buttons = [] # if you want to keep an "easy" reference to your buttons to do something with them later
                               #kivy doesnt crashes because it creates the property automatically
        for message in my_show_list:
            button = Button(text=message)
            my_box.my_buttons.append(button)
            my_box.add_widget(button)
        return my_box


if __name__ == "__main__":
    TestClass().run()

【讨论】:

为 OP 添加一些解释会很好。

以上是关于kivy python列表到按钮文本的主要内容,如果未能解决你的问题,请参考以下文章

在 Kivy for Python 中按下按钮时更新标签的文本

在 Kivy for Python 中按下按钮时更新标签的文本

如何将文本输入值添加到kivy python中字典中的值?

如何在 Kivy、Python 中更新标签的文本

Python kivy 更新不同屏幕中的标签文本

Python Kivy:self.ids 不更新标签文本