Python 使用Kivy将文本输入到另一个屏幕

Python 使用Kivy将文本输入到另一个屏幕,python,kivy,Python,Kivy,我正在使用Screen Manager创建一个应用程序。 我想从一个屏幕获取文本输入,单击Next,然后在另一个屏幕的标签中使用它,并将值保存为全局变量 我的问题是:如何让它工作,因为它没有按照我想要的方式工作。标签始终为0,并且永远不是我键入的值。全局变量的值永远不会更改 main.py文件: from kivy.app import App from kivy.properties import StringProperty, NumericProperty, ObjectProperty

我正在使用Screen Manager创建一个应用程序。 我想从一个屏幕获取文本输入,单击Next,然后在另一个屏幕的标签中使用它,并将值保存为全局变量


我的问题是:如何让它工作,因为它没有按照我想要的方式工作。标签始终为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,并且永远不是我键入的值。全局变量的值永远不会更改。