gpt4 book ai didi

python - 如何将Python变量获取到Kivy?

转载 作者:行者123 更新时间:2023-12-01 02:25:37 25 4
gpt4 key购买 nike

我想要将“randgen”中生成的随机值显示为按钮中的文本(现在按钮显示字符串)。如何将 rand_val 放入 .kv 文件中?

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.clock import Clock
import random

root = Builder.load_string('''
<Demo>:
cols: 1
BoxLayout:
orientation: 'vertical'
Button:
text: 'rand_val_here'
size_hint: .2, .2
pos_hint: {'x':0, 'center_y': .1}

''')
class Demo(BoxLayout):
pass

class MainApp(App):

def build(self):
Clock.schedule_interval(self.randgen, 0.01)
return Demo()

def randgen(dt, self):
rand_val = random.randint(0, 10)
print(rand_val)

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

最佳答案

某些函数的参数和名称不正确,我认为它们是因为您尝试复制并删除次要部分而引起的,但请记住,Python 中的顺序很有趣。

如果你想给一个Widget分配一个属性,你必须首先获取它,并且必须为它们放置一个id,这个id将是要创建和分配的变量的名称,我们可以通过 ids 访问它,如下所示:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.clock import Clock
import random

root = Builder.load_string('''
<Demo>:
cols: 1
BoxLayout:
orientation: 'vertical'
Button:
id: btn
size_hint: .2, .2
pos_hint: {'x':0, 'center_y': .1}

''')
class Demo(BoxLayout):
def __init__(self, *args, **kwargs):
BoxLayout.__init__(self, *args, **kwargs)
Clock.schedule_interval(self.randgen, 0.01)

def randgen(self, dt):
rand_val = random.randint(0, 10)
self.ids.btn.text = str(rand_val)
print(rand_val)

class MainApp(App):
def build(self):
return Demo()

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

关于python - 如何将Python变量获取到Kivy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47440568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com