Python Forum
[Kivy] Add buttons to StackLayout after 'Enter' - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: GUI (https://python-forum.io/forum-10.html)
+--- Thread: [Kivy] Add buttons to StackLayout after 'Enter' (/thread-38767.html)



Add buttons to StackLayout after 'Enter' - Sosik1993 - Nov-21-2022

Hi! I'm beginner in Python.
I want to add buttons to Wyniki(StackLayout) when I write something in TextInput and click Enter. I have written a program that doesn't work :(
I guess that the issue is in line 39 (with 'self'), but I dont know how to solve this problem..
Anyone can help me?


import kivy
from kivy.app import App
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.metrics import dp
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.stacklayout import StackLayout


kivy.require('2.1.0')


class Szukajka(BoxLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.orientation = 'horizontal'
        self.padding = dp(10)
        self.size_hint = (1,None)
        self.size = (self.width,dp(60))
        self.szukaj = TextInput(multiline=False, padding=(8,10,8,10), on_text_validate=Wyniki.tworz)
        self.add_widget(self.szukaj)
        self.lupa = Button(text='Szukaj', size_hint=(None,1), size=(dp(100),self.height))
        self.add_widget(self.lupa)

class Wyniki(StackLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
    def tworz(self):
        for i in range(0, 5):
            self.przycisk = Button(text=str(i), background_color=(0.7, 0.5, 0, 0.8), size_hint=(1, None),
                              size=(dp(300), dp(100)))
            self.add_widget(self.przycisk)

class MainApp(App):
    pass

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