【问题标题】:Python/kivy - textinput to labelPython/kivy - 文本输入到标签
【发布时间】:2018-08-22 19:16:50
【问题描述】:

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

【问题讨论】:

  • 阅读How to Ask,查看tour并表明您已经尝试过
  • 请向我们展示您的尝试。如果我们不知道您在做什么,我们就帮不上什么忙了。

标签: python kivy


【解决方案1】:

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

在以下示例中,我们使用ids 从第二个屏幕引用第一个屏幕中的 TextInput 小部件。详情请参考sn-p和示例。

片段

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'

'''))

输出

【讨论】:

    猜你喜欢
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    相关资源
    最近更新 更多