如何从kivy按钮中获取文本



我正试图为;投票应用程序";其中,通过单击带有候选人ID的按钮,字典中ID键的值将增加+1。(基本上点击即可计票(

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
CANDIDATES = {"T1031" : 0,"T2112" : 0, "T4561" : 0}

class MyLayout(BoxLayout):
orientation = "Vertical"
def __init__(self, **kwargs):
super(MyLayout, self).__init__(**kwargs)
for i in CANDIDATES:
canditate = Button(text=i, on_press=self.button_clicked)
self.add_widget(canditate)
def button_clicked(self, obj):
print("button pressed", obj)
class MyApp(App):
def build(self):
return MyLayout()

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

那么,我如何获取显示在按钮上的文本呢?(另外,如果你们中的任何人知道……我该如何在按钮上输入ID?我试着写"ID=I",但当我这样做时,GUI甚至没有启动(

非常感谢!

您可以使用Button.text属性从按钮访问文本值:

def button_clicked(self, obj):
# Note that obj here is a button object
# You can access it's text value, for example, using obj.text
CANDIDATES[obj.text] += 1
print(f"{obj.text}'s current vote count is now {CANDIDATES[obj.text]}")

最新更新