KivyMD icon indicating copy to clipboard operation
KivyMD copied to clipboard

`MDTextField` `helper_text_mode: "on_error"` bug

Open Neizvestnyj opened this issue 1 year ago • 1 comments

Versions

  • OS: Windows/Android
  • Python: 3.10
  • Kivy: 2.2.0
  • KivyMD: 1.2.0dev0 (master)

When you set the text in the field with the parameter helper_text_mode: "on_error", helper_text is shown on the screen, which should not be until the parameter error=True.

from kivy.lang import Builder

from kivymd.app import MDApp

KV = '''
MDScreen:
    MDBoxLayout:
        id: container
        orientation: 'vertical'
        padding: dp(10)
        spacing: dp(10)

        MDTextField:
            id: field1
            hint_text: "Helper text on error (press 'Enter')"
            helper_text: "There will always be a mistake"
            helper_text_mode: "on_error"
            
        MDTextField:
            id: field2
            hint_text: "Helper text on error (press 'Enter')"
            text: "Text"
            helper_text: "Bug"
            helper_text_mode: "on_error"

        Widget:
'''


class Test(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.screen = Builder.load_string(KV)

    def build(self):
        self.screen.ids.field1.bind(
            on_text_validate=self.set_error_message,
            on_focus=self.set_error_message,
        )

        self.screen.ids.field2.bind(
            on_text_validate=self.set_error_message,
            on_focus=self.set_error_message,
        )
        return self.screen

    def set_error_message(self, instance_textfield):
        instance_textfield.error = True


Test().run()

image

Neizvestnyj avatar Jun 03 '23 18:06 Neizvestnyj