python - 如何通过按下按钮更新标签文本
问题描述
我有一个问题,我似乎找不到答案。我有这个标签:
l = Label(text='Some Text', font_size=100)
我还将文本输入绑定到“l”,如下所示:
t = TextInput(font_size=80, size_hint_y=None, height=200, text='Time', halign='right')
t.bind(text=l.setter('text'))
因此,当我在文本输入框中输入内容时,它会立即更新标签并在屏幕上显示结果。但我只想在用户按下“添加”按钮时更新该文本。我是 kivy 的新手,我仍在尝试它。任何帮助都会很棒。谢谢!
@edit 这是我的代码:
我想做的是这种应用程序,但对于android:
解决方案
这
t.bind(text=l.setter('text'))
将完全按照您的描述进行,因此这不是您想要的。相反,请使用该Button
on_release
属性来调用执行所需操作的方法。最简单的方法是保存对Widgets
相关 (t
和lista
) 的引用,并在新方法中使用这些引用。像这样:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
class WumpaTime(App):
def build(self):
layout = BoxLayout(orientation='vertical')
title = Label(text='Wumpa Time Countdown', size_hint_y=None, height=100, )
self.t = TextInput(font_size=80, size_hint_y=None, height=200, halign='right')
self.lista = Label(font_size=100)
box = BoxLayout()
box2 = BoxLayout()
bremove = Button(text="Remove", size_hint=(None, None), size=(100, 100))
badd = Button(text="Add", size_hint=(None, None), size=(100, 200), on_release=self.update_label)
#t.bind(text=lista.setter('text'))
box.add_widget(self.t)
box.add_widget(badd)
layout.add_widget(title)
layout.add_widget(self.lista)
layout.add_widget(box)
return layout
def update_label(self, button_instance):
self.lista.text = self.t.text
WumpaTime().run()
推荐阅读
- android - 如何使用 https 不安全证书在 glide 中加载图像
- asp.net - ASP.net (VB.Net) Pageload 上的动态控件并在按钮单击时读取它们的值
- python - 从 statsmodels 中汇总保留变量名称
- android - 跳过 xx 帧 [由 FACEBOOK SDK 引起]
- python - 你应该使用 InfluxDBClient 的 close() 方法吗?
- amazon-web-services - 我应该如何在 Flutter 中集成 Amazon RDS?任何原生飞镖支持包?
- android - 用导航抽屉项目点击替换片段的内容
- php - windows文件系统上不允许的编码和解码字符
- rabbitmq - RabbitMQ — 为什么错误的订阅者会收到发布的消息?
- php - 在 php 中:更改密码未在数据库中更新