Мне нужно, чтобы в начале был только уникальный ввод текста, затем, если вы нажмете Введите на клавиатуре, вы можете получить второй массив ввода текста и ввести значения, затем, если вы нажмете Пробел на клавиатуре, вы получите результат. Как я могу сделать это без кнопки или второго 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()