如何在Kivy中随机使用按钮

时间:2015-04-27 15:03:33

标签: kivy

我只想在我的KIVY APP中有2个按钮。

一个带有文本“Hello”,另一个带有0-9的随机数。

我的代码

#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')

from random import random
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from random import random

Builder.load_string("""
<Highest>:
    r1c1: "hello"
    r1c2: random.randrange(10)
    GridLayout:
        cols: 1
        Button:
            text: root.r1c1
        Button:
            text: root.r1c2
""")

class Highest(Screen):
    pass


# Create the screen manager
sm = ScreenManager()
sm.add_widget(Highest(name='Highest'))

class TestApp(App):

    def build(self):
        return sm

if __name__ == '__main__':
    TestApp().run()

如果我只有一个带有文本的按钮 - Hello ,我的代码就可以工作。随机似乎不起作用。

1 个答案:

答案 0 :(得分:0)

也许是因为randrange没有返回一个字符串,而是一个int。你可以尝试:

r1c2: str(random.randrange(10))

OR

尝试将其作为函数添加到根小部件:

class Highest(Screen):

    def get_rand(self):
        return str(random.randrange(10))

你的kv看起来像这样:

r1c2: root.get_rand()