@Mxrxlyn

Как cчитать TextInput из kv в переменную?

Столкнулся с проблемой: В задумке программы необходимо по нажатию кнопки считать текст с панели ввода (TextInput) и перебросить этот текст в на следующий экран с использованием .format (по сути что-то по типу ввода имени в начале игры)

PY Code:

from kivy.config import Config

Config.set('graphics', 'height', 960)
Config.set('graphics', 'width', 540)
Config.set('graphics', 'resizable', 0)

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.uix.screenmanager import ScreenManager, Screen

class HomePage(Screen):
    pass


class MainPage(Screen):
    pass


class WinMan(ScreenManager):
    pass

kv = Builder.load_file('builder.kv')

class MyApp(App):
    def build(self):
        return kv

if __name__ == "__main__":
    MyApp().run()


KV Code:
WinMan:
    HomePage:
    MainPage:

<HomePage>:
    name: 'home'

    GridLayout:
        cols: 1

        Image:
            source:'1600169626174216846.jpg'
            size_hint:(1, .703125)

        GridLayout:
            cols:1
            size_hint:(1, .15625)

            Label:
                text:'fffff'
                size_hint:(1, .15625)
                font_size:23
                halign:'left'
                valign:'middle'
                text_size:(520, 200)


        GridLayout:
            cols:1
            spacing:1
            padding:10
            size_hint:(1, .140625)

            TextInput:
                text:''
                size_hint:(1, .078125)
                multiline:False
                background_color: [.19607843137,.19607843137,.19607843137,1]

            Button:
                text:'Продолжить'
                size_hint:(1, 0.0625)
                background_color: [.196, .196, .196, .1]
                on_release: app.root.current = 'main'





<MainPage>:
    name: 'main'

    GridLayout:
        cols: 1

        Image:
            source:'doomer.jpg'
            size_hint:(1, .703125)

        GridLayout:
            cols:1
            size_hint:(1, .234375)

            Label:
                text:"ffff"
                size_hint:(1, .234375)
                font_size:23
                halign:'left'
                valign:'top'
                text_size:(520, 200)


        GridLayout:
            cols:1
            spacing:1
            padding:10
            size_hint:(1, .0625)


            Button:
                text:'Продолжить'
                size_hint:(1, .0625)
                background_color: [.196, .196, .196, .1]
                on_release: app.root.current = 'home'


Перепробовал уже много всего. Че-то ничего не подходит. Буду очень благодарен, если кто-то подскажет, что делать. Заранее благодарю за потраченные на меня время и силы
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
Hcuy
@Hcuy
Профессионально считаю ворон.
Допустим kivy код :
text_1 : text_1 
        TextInput:
            id: text_1
        Button:
            text: 'Save'
            on_press: 
                    root.text_input_1(text_1)


Тогда что бы получить данные пользователя создадим класс Screen2_2:
class Screen2_2(BoxLayout):
  def text_input_1(self, text_1):
    print (text_1.text)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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