Я новичок в Киви, и мне нужна ваша помощь. У меня небольшой вопрос:
Мне нужен массив Dynami c, в котором пользователь может ввести первое значение в первое поле TextInput, затем он может нажать кнопку «Новая строка», он получает возможность ввести второе значение в новом поле TextInput, поскольку он может нажать снова. Кнопка «Новая строка» дает ему возможность ввести третье значение в новом поле TextInput. С помощью «Result» он может вызвать сумму этих значений в метке в любое время
Как я могу создать этот динамический массив c? Большое спасибо
это мой файл main.py
from kivy.clock import Clock
from kivy.uix.textinput import TextInput
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import ObjectProperty
Builder.load_file('MyMain.kv')
class WindowManager(ScreenManager):
pass
class MainWindow(Screen):
def __init__(self, **kwargs):
super(MainWindow, self).__init__(**kwargs)
self.counter = 1
Clock.schedule_once(self.add_stuff)
def add_stuff(self, *args):
self.textlist = [TextInput()]
self.ids.grid.add_widget(Label(text='Input value {}'.format(self.counter)))
self.counter += 1
self.ids.grid.add_widget(self.textlist[0])
# function to create new inputs, that button 'new line' calls:
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])
# function to get a result:
def getresult(self):
result = 0
for i in self.textlist:
# you may convert it to float if you need, like float(i.text)
result += int(i.text)
self.ids.label_id.text = str(result)
class MyMainApp(App):
def build(self):
b1=WindowManager()
MainWindow()
return b1
if __name__ == "__main__":
MyMainApp().run()
это MyMain.kv
<CustButton@Button>:
font_size: 40
<WindowManager>:
MainWindow:
<MainWindow>:
name: "main"
# don't forget to add this
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
CustButton:
text: "new line"
on_press: root.addnewtextinput()
CustButton:
text: "result"
font_size: "30sp"
on_press: root.getresult()
TextInput:
id:label_id
font_size: 40
multiline: True
я не могу увидеть окно kivy .. можете ли вы помогите мне?