Seite 1 von 1

erste Schritte mit kivy

Verfasst: Samstag 3. Juli 2021, 18:09
von The Hit-Man
Teste gerade ein wenig mit kivy rum und habe mir mal einen Button gebaut. Allerdings wenn ich ihn drücke bekomme ich immer die Fehlermeldung:
AttributeError: 'GridLayout' object has no attribute 'click'
Weiß da jemand was?

Code: Alles auswählen

from kivy.app import App
from kivy.lang import Builder

kv = '''
<MainForm>
GridLayout:
    cols:1
    GridLayout:
        cols:2
        rows:3
    Button:
        text: "Beenden" 
        on_press: root.click
'''


class MainForm(App):
    def build(self):
        root = Builder.load_string(kv)
        return root
    def click(self):
        print ('pressed')


if __name__ == '__main__':
    MainForm().run()

Re: erste Schritte mit kivy

Verfasst: Sonntag 4. Juli 2021, 14:44
von Dennis89
Hallo,

du brauchst für dein Fenster eine Klasse. Die 'MainForm' nimmt keine Button-Ereignisse entgegen. Damit wird das Hauptprogramm "nur" aufgebaut. Für jedes Fenster in dem etwas passieren soll, musst du eine Klasse erstellen.

Code: Alles auswählen

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget

Builder.load_string('''
<FirstGrid>:
    GridLayout:
        cols:1
        GridLayout:
            cols: 2
            rows: 3
        Button:
            text: "Beenden" 
            on_press: root.click()
''')

class FirstGrid(Widget):
    def click(self):
        print('pressed')


class FirstApp(App):
    def build(self):
        return FirstGrid()



if __name__ == '__main__':
    FirstApp().run()
Grüße
Dennis

Re: erste Schritte mit kivy

Verfasst: Dienstag 6. Juli 2021, 06:03
von The Hit-Man
Ahhhh. Danke ... Damit kann ich dann erstmal rum testen ...