【问题标题】:Kivy button and game scoreKivy 按钮和游戏得分
【发布时间】:2016-07-20 10:02:36
【问题描述】:

我是编程新手,并决定在 Kivy 中创建一个游戏。 我遇到了一个非常简单的问题。如果有一个按钮和一个显示分数的标签,我如何使用on_press 事件来增加分数?

例如当按下按钮时,分数变为 1,依此类推。

另外,将所有内容都写在 Python 文件中更好还是我也应该使用 kv 文件?

【问题讨论】:

    标签: python button label kivy


    【解决方案1】:

    您可以只使用 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
    

    【讨论】:

    • 非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2014-06-17
    • 1970-01-01
    相关资源
    最近更新 更多