@mmmmob

Как получить текст textfield из kv?

Здравствуйте, нужно получить из textfield, который в kv, его текст в основной класс
import kivy
from kivy.lang.builder import Builder
from kivymd.app import MDApp
from kivymd.uix.dialog import MDDialog
from kivymd.uix.button import MDFlatButton, MDRaisedButton
from kivymd.uix.textfield import MDTextField
from kivy.uix.boxlayout import BoxLayout
KV="""
<Content>:
    orientation: 'vertical'
    size_hint_y: None
    height: "60dp"
    MDTextField:
        id: textnumber
        hint_text: "логин"
        height:'70dp'
"""
class Content(BoxLayout):
    pass
        
class TestApp(MDApp):
    def build(self):
        Builder.load_string(KV)
        dialog = MDDialog(size_hint_x=.6,title='Авторизация', content_cls=Content(), type='custom',
            buttons=[MDFlatButton(text='Отмена'),
        MDRaisedButton(text='ОК')])
        dialog.open()
TestApp().run()
  • Вопрос задан
  • 702 просмотра
Пригласить эксперта
Ответы на вопрос 2
BitNeBolt
@BitNeBolt
Kilovatt, тогда попробуйте переопределить (установить и т.п.) метод on_text. Из него вы сможете получать текст каждый раз при его обновлении.

Если надо брать значение при утверждении, то распишите метод on_text_validate, это то, что будет выполняться при подтверждении. Так как в атрибутах метода нет текста, то в методе on_text изменяйте значение переменной, созданной Вами, приложения.

https://kivymd.readthedocs.io/en/latest/components...
Ответ написан
@Aarrtteemm
dialog.content_cls.ids.textnumber.text = 'your text'

print(dialog.content_cls.ids.textnumber.text)

Но добавьте self к полю dialog
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы