如何使用Kivy更改另一个屏幕中的值


Button:
text:"Go Back"
on_release:
app.root.current='mainwin'
root.manager.transition.direction="right"
app.setResult()

<CalcScreen>
id: second
name:'calcwin'
GridLayout:
cols:1
Label:
text: root.setResult()
multiline:False
color: 1,1,1,1
font_size: (30)
Button:
text:"Go Back"
on_release:
app.root.current='mainwin'
root.manager.transition.direction="right"

class CalcScreen(Screen):
global ChiSquare
def btn3(self):
pass
def setResult(self):
ans = NumericProperty(ChiSquare)
self.ans=str(ChiSquare)
print(ans)
self.root.ids.label1.text = self.ans

第一个和第二个代码来自kivy文件,第三个代码来自python文件。我正在试着做一个卡方计算器。当我按下第一个计算按钮时,计算屏幕上的标签应该显示答案,但它只显示None。我不知道如何解决这个问题,你能帮我解决吗?

如果我没有提供足够的资源,我会展示更多。

谢谢你,

第页。S它解决了,谢谢。我知道我没有理解kivy的很多基本原理,很抱歉这个令人困惑的问题。

def result(self):
self.manager.screens[1].label1.text = str(self.calc())

class CalcScreen(Screen):
c = ObjectProperty(None)
ans = StringProperty()
print(ans)
def btn3(self):
pass

在您的.kv文件中尝试以下操作:

<CalcScreen>
id: second
name:'calcwin'
GridLayout:
cols:1
Label:
Id: "label1"
text: ""
multiline:False
color: 1,1,1,1
font_size: 30
Button:
text:"Go Back"
on_release:
app.root.current='mainwin'
root.manager.transition.direction="right"
on_press: app.setResult()

然后在您的python文件中:

class CalcScreen(Screen):
global ChiSquare
def btn3(self):
pass
def setResult(self):
ans = NumericProperty(ChiSquare)
self.ans=str(ChiSquare)
print(ans)
self.root.ids.label1.text = self.ans

按下按钮时,on_press: app.setResult()将运行该功能

self.root.ids.label1.text = self.ans将显示结果

最新更新