首页 > 解决方案 > 标签未在 kivy 中更新

问题描述

    self.create_pass_input = TextInput(text='', multiline=False)
    self.add_details.add_widget(self.create_pass_input)
    
    self.add_details.add_widget(Label(text="Strong password's prevent hacking"))

    
    self.password_tracker = Label()
    
    if len(self.create_pass_input.text)  < 5:
        self.password_tracker.text = 'Weak'
      
    else:
        self.password_tracker.text = 'Strong'   
   
       
    self.add_details.add_widget(self.password_tracker)

我正在尝试更新名为“self.password_tracker”的标签,因为名为“self.create_pass_input”的文本输入中的文本发生了变化,但如果可能的话没有更新可以用python语言给出答案

kivy 截图

标签: pythonkivylabeltextinput

解决方案


您可以修改您提到的代码部分,如下所示:

    def on_text(instance, value):
        if len(self.create_pass_input.text)  < 5:
            self.password_tracker.text = 'Weak'          
        else:
            self.password_tracker.text = 'Strong'                       
    
    self.create_pass_input = TextInput(text='', multiline=False)
    self.create_pass_input.bind(text=on_text)
    self.add_details.add_widget(self.create_pass_input)    
    self.add_details.add_widget(Label(text="Strong password's prevent hacking"))    
    self.password_tracker = Label()
    self.add_details.add_widget(self.password_tracker)

这将确保on_text每当文本TextInput更改时触发方法。


推荐阅读