@HikKira

Хотел спросить про python kivy... Вообще ничего не понимаю( Вы сможете помочь?

Господа... Я недавно программирую только 5 месяцев и решил попробовать kivy... Прошу Вас не ругайтесь на мой код... Я посмотрел кучу видосиков на ютабе и кучу сайтов про kivy... Но все равно kivy для меня сложен....
Прежде всего я не понимаю, как сделать так, чтобы код выполнялся не весь сразу а постепенно.... Типа у меня проблема хочу сделать кнопок столько, сколько задаст пользователь в TextInput и потом отдать это значение в след цикл, но код выполняется весь сразу я вообще не понимаю, что делать Помогите, пожалуйста... Вот что я хотел сделать

class ScreenTwo7(Screen):
	def __init__(self, **kwargs):
		super().__init__(**kwargs)
		self.name = 'Sc7'
		AncL1 = AnchorLayout(anchor_y = 'top')
		NumberS1 = GridLayout(cols = 2, spacing = 2, padding = [0, 100, 0, 100] )
		AncL1.add_widget(NumberS1)
		for i in range(1):
			
			self.t2 = TextInput(text = 'Введите кол-во элементов выборки...')
			NumberS1.add_widget(self.t2)
			
			self.b2 = Button(text = 'Вывести поля для выборки')
			self.b2.bind(on_press = self.cicle)
			NumberS1.add_widget(self.b2)

			
		self.add_widget(AncL1)		
	def cicle(self, t):
		for n in  range(int(t.text)):
			NumberS1 = GridLayout(cols = 2, spacing = 2, padding = [0, 100, 0, 100] )
			self.t2 = TextInput(text = '#1')
			NumberS1.add_widget(self.t2)
			self.add_widget(NumberS1)


И еще был вопрос о том как перенести значение из одного классса в другой... Я хотел что бы на одном экране пользователь нажал на кнопку 7, эта цифра бы запомнилась в какой нибудь переменной и перенеслась в следующий screen спасибо за ответы... Если будут..
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Umpiro
Чтобы код выполнялся не весь сразу, а в зависимости от действий пользователя, вам нужно использовать events.
Например, on_text_validate виджета TextInput.
#!/usr/bin/python
import kivy
from kivy.app import App
from kivy.uix.textinput import TextInput
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button

class RootWidget(GridLayout):
    def __init__(self, **kwargs):
        super(RootWidget, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(CreateInput(multiline=False))

class CreateInput(TextInput):
    def on_text_validate(self):
        for i in range(int(self.text)):
            self.parent.add_widget(Button(text=str(i)))

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

if __name__ == "__main__":
    MyApp().run()
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы