如何在 Kivy 中使用随机按钮

How to use random with button in Kivy

我只想在我的 KIVY 应用程序中有 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。随机好像不行。

可能是因为 randrange 返回的不是字符串,而是 int。你可以试试:

r1c2: str(random.randrange(10))

尝试将它作为一个函数添加到您的根小部件中:

class Highest(Screen):

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

你的 kv 看起来像这样:

r1c2: root.get_rand()