如何从.kv文件中更改python变量的值



我是python新手,刚刚开始使用kivy库。我试图改变一个变量的值在.py文件时,从.kv文件按钮被按下。我不知道如何煽动这件事。

我目前拥有的代码是:python文件:

from kivy.app import App
from kivy.uix.widget import Widget
class experienceScreen(Widget):
pass   
experience=""
class workoutApp(App):
def build(self):
return experienceScreen()
workoutApp().run()
def beginnerpressed(self, instance):
experience==1

if experience == 1:
print("test code works.")
if experience == 2:
print("test code works.")
if experience == 3:
print("test code works.")

kivy文件:

#: kivy 2.1.0
<experienceScreen>:
FloatLayout:
pos:0,0
size: root.width, root.height
Label:
text: "What level of gym go-er are you?"
pos_hint: {'x':.4,'y':.85}
size_hint:0.2,0.1
Button:
text: "Beginner"
pos_hint: {'x':.25,'y':.6}
size_hint:0.5,0.1
on_press: experience=1
Button:
text: "Intermediate"
pos_hint: {'x':.25,'y':.4}
size_hint:0.5,0.1
on_press: experience=2
Button:
text: "Advanced"
pos_hint: {'x':.25,'y':.2}
size_hint:0.5,0.1
on_press: experience=3

我期望当我按下任何按钮时"测试代码工作"。文本将显示在控制台中。然而,事实并非如此。我想这是因为。kv文件中变量的分配方式不同。

on_press项需要连接到代码中的方法(函数)。可以用根。到达小部件或应用程序。到达应用程序对象中的方法。

Kivy文件
<experienceScreen>:
FloatLayout:
pos:0,0
size: root.width, root.height
Label:
text: 'What level of gym go-er are you?'
pos_hint: {'x':.4,'y':.85}
size_hint:0.2,0.1
Button:
text: 'Beginner'
pos_hint: {'x':.25,'y':.6}
size_hint:0.5,0.1
on_press: root.beginnerpressed(1)
Button:
text: 'Intermediate'
pos_hint: {'x':.25,'y':.4}
size_hint:0.5,0.1
on_press: root.beginnerpressed(2)
Button:
text: 'Advanced'
pos_hint: {'x':.25,'y':.2}
size_hint:0.5,0.1
on_press: root.beginnerpressed(3)

python

class experienceScreen(Widget):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.experience = 0
def beginnerpressed(self, experience: int):
self.experience = experience
print(f"test code works. {self.experience}")

class workoutApp(App):
def build(self):
return experienceScreen()
workoutApp().run()

最新更新