问题描述
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
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文件。我正在尝试制作卡方计算器。当我按下第一个计算按钮时,calcscreen 上的标签应该显示答案,但它只显示 None。我不知道怎么解决这个问题,你能帮我吗?
如果我没有提供足够的资源,我会展示更多。
谢谢,
附言 解决了,谢谢。我知道我不太了解 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
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
将显示结果