我是编程新手并决定在Kivy创建游戏。
我遇到了很简单的问题。如果有一个按钮和一个显示分数的标签,我如何使用on_press
事件来增加分数?
e.g。当按下按钮时,分数变为1,依此类推。
另外,在Python文件中编写所有内容还是更好?还是应该使用kv文件?
答案 0 :(得分:0)
您可以只使用python或kv语言。这完全取决于你。 在这种情况下,我们使按钮调用函数,增加标签文本。 我将举两个例子。一个只用python,一个用kivy语言。
这只是python中的一个例子:
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
class Game(BoxLayout):
def __init__(self,**kwargs):
super(Game,self).__init__(**kwargs)
self.count = 0
self.orientation = "vertical"
self.button = Button(on_press=self.increment, text="Increment")
self.label = Label(text="0")
self.add_widget(self.button)
self.add_widget(self.label)
def increment(self,*args):
self.count += 1
self.label.text = str(self.count)
class MyApp(App):
def build(self):
return Game()
使用python和kivy语言的相同应用程序。
Python文件:
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
class Game(BoxLayout):
label_text = StringProperty()
def __init__(self,**kwargs):
super(Game,self).__init__(**kwargs)
self.count = 0
self.label_text = str(self.count)
def increment(self,*args):
self.count += 1
self.label_text = str(self.count)
print self.label_text
class MyApp(App):
def build(self):
return Game()
MyApp().run()
和my.kv文件:
#:kivy 1.9.1
<Game>:
orientation: "vertical"
Button:
text: "Increment"
on_press: root.increment()
Label:
text: root.label_text