Перейти к следующему ِ Массив «Список», нажав «Ввод» и Результат, нажав «Пробел» - PullRequest
0 голосов
/ 18 февраля 2020

Мне нужно, чтобы в начале был только уникальный ввод текста, затем, если вы нажмете Введите на клавиатуре, вы можете получить второй массив ввода текста и ввести значения, затем, если вы нажмете Пробел на клавиатуре, вы получите результат. Как я могу сделать это без кнопки или второго TextInput?

мой код

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.properties import ObjectProperty, StringProperty
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout




Builder.load_string('''
<BestWindow>:
    inpt_one: inpt_one
    inpt_two: inpt_two
    result_layout: result_layout
    BoxLayout:
        orientation:"vertical"
        TextInput:
            id: inpt_one
        TextInput:
            id: inpt_two
        Button:
            text: "Add them up!"
            on_press: root.calculate()
        BoxLayout:
            id: result_layout
            orientation: "horizontal"

''')

class BestWindow(BoxLayout):
    my_result = StringProperty("")
    inpt_one = ObjectProperty(None)
    result_layout = ObjectProperty(None)
    def __init__(self, **kwargs):
        super(BestWindow, self).__init__(**kwargs)

    def calculate(self):
        self.result_layout.clear_widgets()
        nums_one = self.inpt_one.text.strip().split(".")
        nums_two = self.inpt_two.text.strip().split(".")
        if(len(nums_one) < len(nums_two)):
            for _ in range(len(nums_two)-len(nums_one)):
                nums_one.append(0)
        elif(len(nums_two) < len(nums_one)):
            for _ in range(len(nums_one)-len(nums_two)):
                nums_two.append(0)
        result = [int(x) + int(y) for x,y in zip(nums_one, nums_two)]

        for res in result:
            self.result_layout.add_widget(Label(text=str(res)))
        self.inpt_one.text = ''
        self.inpt_two.text = ''


class TestApp(App):
    def build(self):
        return BestWindow()

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