Python 使用Kivy将文本输入到另一个屏幕
我正在使用Screen Manager创建一个应用程序。 我想从一个屏幕获取文本输入,单击Next,然后在另一个屏幕的标签中使用它,并将值保存为全局变量Python 使用Kivy将文本输入到另一个屏幕,python,kivy,Python,Kivy,我正在使用Screen Manager创建一个应用程序。 我想从一个屏幕获取文本输入,单击Next,然后在另一个屏幕的标签中使用它,并将值保存为全局变量 我的问题是:如何让它工作,因为它没有按照我想要的方式工作。标签始终为0,并且永远不是我键入的值。全局变量的值永远不会更改 main.py文件: from kivy.app import App from kivy.properties import StringProperty, NumericProperty, ObjectProperty
我的问题是:如何让它工作,因为它没有按照我想要的方式工作。标签始终为0,并且永远不是我键入的值。全局变量的值永远不会更改 main.py文件:
from kivy.app import App
from kivy.properties import StringProperty, NumericProperty, ObjectProperty
from kivy.uix.screenmanager import ScreenManager, Screen
global var
var = 0
class FirstScreen(Screen):
global var
def SaveResult(self, text):
global var
g = int(text)
return var
class SecondScreen(Screen):
global var
a = NumericProperty('')
a = str(var)
还有我的测试
ScreenManager:
id: screen_manager
FirstScreen:
id: screen1
name: "FirstScreen"
manager: screen_manager
SecondScreen:
id: screen2
name: "SecondScreen"
manager: screen_manager
<FirstScreen>:
FloatLayout:
canvas.before:
Color:
rgba: 0.1, 0.1, 0.1, 1
Rectangle:
# self here refers to the widget i.e BoxLayout
pos: self.pos
size: self.size
TextInput:
id: text_input
multiline: False
size_hint_x: .4
size_hint_y: .1
pos_hint: {'x': .1, 'y': .20}
Button:
background_color: 0.2, 0.7, 1, 1,
font_size: root.width / 15
id: btn1
text: "Next"
on_press:
root.SaveResult(text_input.text)
root.manager.current = 'SecondScreen'
size_hint_x: .4
size_hint_y: .1
pos_hint: {'x': .5, 'y': .20}
<SecondScreen>:
FloatLayout:
canvas.before:
Color:
rgba: 0.1, 0.1, 0.1, 1
Rectangle:
# self here refers to the widget i.e BoxLayout
pos: self.pos
size: self.size
Label:
color: 0.2, 0.7, 1, 1,
font_size: root.width / 15
id: lb1
text: root.a
size_hint_x: .4
size_hint_y: .2
pos_hint: {'x': .3, 'y': .8}
屏幕管理器:
id:屏幕管理器
第一屏:
id:屏幕1
名称:“第一屏”
经理:屏幕管理器
第二屏:
id:屏幕2
名称:“第二屏幕”
经理:屏幕管理器
:
浮动布局:
在以下情况之前:
颜色:
rgba:0.1,0.1,0.1,1
矩形:
#self在此指的是小部件,即BoxLayout
pos:self.pos
大小:self.size
文本输入:
id:文本输入
多行:False
大小\u提示\u x:.4
大小\u提示\u y:.1
位置提示:{'x':.1,'y':.20}
按钮:
背景颜色:0.2,0.7,1,1,
字体大小:root.width/15
id:btn1
正文:“下一个”
新闻界:
root.SaveResult(text\u input.text)
root.manager.current='SecondScreen'
大小\u提示\u x:.4
大小\u提示\u y:.1
位置提示:{'x':.5,'y':.20}
:
浮动布局:
在以下情况之前:
颜色:
rgba:0.1,0.1,0.1,1
矩形:
#self在此指的是小部件,即BoxLayout
pos:self.pos
大小:self.size
标签:
颜色:0.2,0.7,1,1,,
字体大小:root.width/15
id:lb1
文本:root.a
大小\u提示\u x:.4
大小\u提示\u y:.2
位置提示:{'x':.3,'y':.8}
你的问题是什么?如何让它工作,因为它没有按我想要的方式工作。标签始终为0,并且永远不是我键入的值。全局变量的值永远不会更改。