Я пытаюсь создать приложение, которое может вычислить сумму четырех значений в двух Textinput. У меня есть этот код: есть текстовый вход, пользователь может ввести число в этом текстовом входе, затем пользователь может нажать «Enter». ", затем дается второй текстовый ввод, во втором текстовом вводе пользователь может ввести другое значение. Если пользователь нажимает" Пробел ", он получает результат, сумму первого значения и второго значения,
мой код: main.py
from kivy.lang import Builder
from kivy.uix.label import Label
from kivy.properties import ObjectProperty, StringProperty
from kivy.uix.textinput import TextInput
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.clock import Clock
Window.clearcolor = (0.5, 0.5, 0.5, 1)
Window.size = (400, 200)
class WindowManager(ScreenManager):
pass
class BestWindow(Screen):
def __init__(self, **kwargs):
super(BestWindow, self).__init__(**kwargs)
Window.bind(on_key_down=self._on_keyboard_down)
self.counter = 1
Clock.schedule_once(self.add_stuff)
def add_stuff(self, *args):
self.textlist = [TextInput()]
self.textinput = TextInput(focus=True)
self.ids.grid.add_widget(Label(text='Input value {}'.format(self.counter)))
self.counter += 1
self.ids.grid.add_widget(self.textlist[0])
def addnewtextinput(self):
self.ids.grid.add_widget(Label(text='Input value ' + str(self.counter)))
self.counter += 1
self.textlist.append(TextInput())
self.ids.grid.add_widget(self.textlist[-1])
def getresult(self):
result = 0
for i in self.textlist:
result += int(i.text)
self.ids.label_id.text = str(result)
def _on_keyboard_down(self, instance, keyboard, keycode, text, modifiers):
if self.textinput.focus and keyboard== 13: # 32 - Cpace key presssed Ascii
self.addnewtextinput()
if self.textinput.focus and keyboard== 32: # 32 - Cpace key presssed Ascii
self.getresult()
kv = Builder.load_file("main.kv")
class TestApp(App):
def build(self):
b1 = WindowManager()
return b1
if __name__ == "__main__":
TestApp().run()
файл main.kv:
<CustButton@Button>:
font_size: 40
<WindowManager>:
BestWindow:
<BestWindow>:
name: "erst"
grid: grid.__self__
GridLayout:
cols:1
# you will control that GridLayout from .py so here it's empty
GridLayout:
# set the id to be able to control it from .py file
id: grid
cols: 2
GridLayout:
spacing: 10
cols:2
Button:
id : test3
focus: False
text: "Result!"
on_press: app.root.current = "therd"
Label:
id:label_id
multiline: True
BoxLayout:
id: result_layout
orientation: "horizontal"
теперь мне нужно сделать следующее: 1. курсор должен быть при первом вводе текста. 2. когда я нажимаю «Enter» курсор должен быть в новом текстовом вводе. 3. Введите более одного значения в каждый текстовый ввод и используйте Komma между значениями, например, первый ввод текста: 1,3,2, второй: 3,5,3,5, результат: 4 8 5 5 как я могу сделай это ? Спасибо