Python / Kivy-文本输入到标签

时间:2018-08-22 19:16:51

标签: python kivy

我的问题是关于python和kivy。我目前正在使用python和kivy构建应用程序,但是我陷入了这一过程中非常重要的一步。我需要将一个屏幕的文本输入转换为另一屏幕上的标签...我已经尝试了一些技巧,但没有成功..我将非常感谢您的帮助。谢谢

1 个答案:

答案 0 :(得分:0)

访问kv文件中Kv lang内部定义的小部件

在下面的示例中,我们使用ids来引用第二个屏幕中第一个屏幕中的TextInput小部件。有关详细信息,请参见代码段和示例。

摘要

ScreenManager:
    FirstScreen:
        id: first_screen
    SecondScreen:
        id: second_screen


<FirstScreen@Screen>:
    name: 'firstScreen'

    BoxLayout:
        orientation: 'vertical'

        TextInput:
            id: user_input
            text: 'testing-1-2-3'
...
<SecondScreen@Screen>:
    name: 'secondScreen'

    BoxLayout:
        orientation: 'vertical'

        Label:
            # Accessing Widgets using ids
            text: root.manager.ids.first_screen.ids.user_input.text

Kv language » Referencing Widgets

  

在小部件树中,通常需要访问/引用其他   小部件。 Kv语言提供了一种使用ID的方法来实现此目的

ScreenManager » Basic Usage

  

每个屏幕默认都有一个属性manager,该属性为您提供   使用的ScreenManager实例。

示例

main.py

from kivy.lang import Builder
from kivy.base import runTouchApp

runTouchApp(Builder.load_string('''
#:kivy 1.11.0

ScreenManager:
    FirstScreen:
        id: first_screen
    SecondScreen:
        id: second_screen


<FirstScreen@Screen>:
    name: 'firstScreen'

    BoxLayout:
        orientation: 'vertical'

        TextInput:
            id: user_input
            text: 'testing-1-2-3'

        Button:
            text: 'Second Screen'
            on_release:
                root.manager.current = 'secondScreen'


<SecondScreen@Screen>:
    name: 'secondScreen'

    BoxLayout:
        orientation: 'vertical'

        Label:
            # Accessing Widgets using ids
            text: root.manager.ids.first_screen.ids.user_input.text

        Button:
            text: 'First Screen'
            on_release:
                root.manager.current = 'firstScreen'

'''))

输出

Img01 - TextInput in Screen1 Img02 - Label in Screen2