python - Python/kivy - 文本输入到标签
问题描述
我的问题是关于 python 和 kivy。我目前正在使用 python 和 kivy 构建一个应用程序,但是我陷入了这个过程中非常重要的一步。我需要将一个屏幕的文本输入转换为另一个屏幕上的标签......我已经尝试了一些技巧,但没有成功......我非常感谢任何帮助。谢谢
解决方案
访问在您的 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 语言提供了一种使用 id 的方法来做到这一点
默认情况下,每个屏幕都有一个属性,该属性
manager
为您提供所用 ScreenManager 的实例。
例子
主文件
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'
'''))
输出
推荐阅读
- sql-server - 如何为 SQL Server 中的表名列表生成 CREATE TABLE 脚本
- laravel - 不完全是 SPA 的应用程序中的身份验证(和授权) - Laravel Passport
- html - 如何使用 VS Code 在 html 文件中添加来自 .d.ts 的智能感知?
- python - 通过 python 连接到 Oracle DB
- c# - 如何使用 C# 从 Windows 窗体启动 UWP 应用程序
- asp.net-core - EmbeddedFileProvider 或 ManifestEmbeddedFileProvider 在 ASP.NET Core 2.1 中是否可用?
- python - 如何在python中获取(几乎)相同的多维数组值
- java - ArrayBlockingQueue - 每个月的队列总是满的
- git - 有没有办法在你的项目文件夹上同时使用云和 git?
- flutter - 找不到 Flutter 1.12.13+hotfix.5 的名为“pubspec.yaml”的文件