我想知道按钮按下 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))
)
提前致谢。