我正在尝试kivy并在kivy写了一个列表点击计数器。当按下按钮时,它应显示列表元素和数字,下一次单击应显示下一个列表元素,重复这个数字直到列表完成。这是我的python文件。
#main.py
from kivy.uix.boxlayout import BoxLayout
from kivy.app import App
class Page(BoxLayout):
pass
class SimpleKivyApp(App):
def onClick(self,i,j):
ls=["foo","boo","goo","koo","bar" ]
for i,j in enumerate(ls):
self.root.ids.id1.text=str(i)+" "+str(j)
def build(self):
return Page()
a=SimpleKivyApp()
a.run()
kv文件
#simplekivy.kv
<Page>:
Label:
id:id1
pos:0,0
font_size:80
Button:
size_hint:0.5,0.2
font_size:60
text:"Submit"
on_press: app.onClick()
我不知道为kivy提交关键事件的合理方式。我尝试在列表中循环,但我知道它不是正确的方式而且崩溃了。
答案 0 :(得分:1)
每次点击,列表都会重新初始化。做类似的事情:
from kivy.properties import ObjectProperty
class SimpleKivyPage(Page):
def __init__(self):
self.ls = ["foo","boo","goo","koo","bar" ]
self.identify = ObjectProperty()
class SimpleKivyApp(App):
page = SimpleKivyPage()
def onClick(self,i,j):
self.page.identify.text=str(i)+" "+str(self.ls[i])
self.i += 1
def build(self):
return self.page
a=SimpleKivyApp()
a.run()
另外,修改您的kv
文件:
#simplekivy.kv
<SimpleKivyPage>:
identify: id1
Label:
id:id1
pos:0,0
font_size:80
Button:
size_hint:0.5,0.2
font_size:60
text:"Submit"
on_press: app.onClick()