有没有办法知道for循环中的按钮按下ID?

时间:2021-04-17 14:49:17

标签: python kivy-language

我想知道按钮按下 ID。在 test1.kv 文件中,共有 6 个按钮使用 for 循环生成,按下任意按钮后的值打印为 6。这 6 是变量 'txt' 的值。

我也试过将 id 设为 'Button(text = txt, color=(1,1,0,1), id=txt, on_press=lambda x:root.my_Function(txt )' 之后我收到错误,因为 TypeError: object.init() 没有参数

.py 文件 -> Test1.py

from kivymd.app import MDApp
from kivy.uix.widget import Widget
from kivy.lang.builder import Builder
from kivy.core.window import Window

Window.fullscreen = False
Window.size = (700, 750)

Builder.load_file('test1.kv')


class MyGrid(Widget):
    def __init__(self, **kwargs):
        super(MyGrid, self).__init__(**kwargs)

    def my_Function(self, *args):
        print(*args)


class MyApp(MDApp):
    def build(self):
        return MyGrid()


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

.kv 文件 -> test1.kv

#: 导入按钮kivy.uix.button.Button

<MyGrid>:
    GridLayout:
        cols:3
        size: root.width, root.height
        on_parent:
            for i in range(6): txt = str(i+1); self.add_widget(
            Button(text = txt, color=(1,1,0,1), on_press=lambda x:root.my_Function(txt))
            )

提前致谢。

0 个答案:

没有答案