【问题标题】:How can i update label text by pressing button如何通过按下按钮更新标签文本
【发布时间】:2020-04-08 08:24:21
【问题描述】:

我有一个问题,我似乎找不到答案。 我有这个标签:

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 这是我的代码:

https://gist.githubusercontent.com/Gacut/d765231c2696831af8c8a3315fdabbfd/raw/e1bdcdd8aca588b1c9268e76f7a47fa7576d54cb/gistfile1.txt

而我正在尝试做的是这种应用程序,但适用于 android:

https://wumpa.app/

【问题讨论】:

  • 你搜索过答案吗?
  • 实际上我做到了,但没有一个回答者对我的特定主题有帮助。
  • 那有什么不能做的呢?你知道当用户按下添加按钮时如何绑定一个函数来运行吗?您知道如何使该功能更改标签文本吗?请提供一个最小的可运行示例来演示您遇到问题时的组件。
  • 我已经添加了我的代码和解释,我想做什么。

标签: python button label kivy


【解决方案1】:

t.bind(text=l.setter('text'))

将完全按照您的描述进行,因此这不是您想要的。相反,请使用 Button on_release 属性来调用执行所需操作的方法。最简单的方法是保存对所涉及的Widgets 的引用(tlista),并在新方法中使用这些引用。像这样:

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()

【讨论】:

  • 非常感谢!我知道这个函数应该做我想做的事,但我不知道如何将该参数设置为按钮。这很棒!再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多