Kivy Buttons ohne KV einfügen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Dallnic
User
Beiträge: 1
Registriert: Dienstag 24. November 2020, 14:25

Hallo Leute, ich habe folgendes Problem. Ich möchte mittels Kivy ein GUI erstellen, welches soweit auch schon form angenommen hat. Ich konnte mittels dem KV Dokument bereits mehrere Seiten erstellen und unter ihnen hin und her wechsel. Nun möchte ich einen neuen Screen ohne KV einbinden.
Der Zurück Button davon ist schon zu sehen aber die durch die For-Schleife erstellten Button leider noch nicht. Auch der zurück Button verursacht Probleme beim ausführen. Ich hoffe ihr könnt mir helfen.

ProgrammCode:

Code: Alles auswählen

class KivyApp(App):
    class newMatTypeChoice(Screen):
        neuesmaterialanlegenScreen = GridLayout(cols=1)
        def zurück(self):
            ms.current='materialverwaltungsScreen'
        def aufbau(self):
            for matType in backend.geladeneMaterialTypen:
                if matType != "Anzahl":
                    Button1=Button(text=matType, size_hint_y=None, height=40)
                    self.add_widget(Button1)

            Button2 = Button(text="Materialverwaltung", size_hint_y=None, height=40)
            Button2.bind(on_press=self.zurück)
            self.add_widget(Button2)

Builder.load_string("""
<Materialverwaltung>
    ScrollView:
        GridLayout:
            orientation: "vertical"
            size_hint_y: None
            height: self.minimum_height
            row_default_height: 60
            cols:1
            Label:
                padding: 10, 10
                text: "Materialverwaltung"
            Button:
                padding: 10, 10
                text: "Neues Material Anlegen"
                on_press: root.changeto_newMatTypeChoice()
            Button:
                padding: 10, 10
                text: "Neuen Materialtypen Anlegen"
                on_press: root.manager.current = 'neuenmaterialtypenanlegenScreen'
            Button:
                padding: 10, 10
                text: "Material Anzeigen"
                on_press: root.manager.current = 'materialanzeigenScreen'
            Button:
                padding: 10, 10
                text: "Neue Tätigkeiten Anlegen"
                on_press: root.manager.current = 'neuetaetigkeitenScreen'
            Button:
                padding: 10, 10
                text: "Neue Tätigkeitengruppe Anlegen"
                on_press: root.manager.current = 'neuetaetigkeitengruppeanlegenScreen'
            Button:
                padding: 10, 10
                text: "Tätigkeiten Anzeigen"
                on_press: root.manager.current = 'taetigkeitenanzeigenScreen'
            Button:
                padding: 10, 10
                text: "Ort Anzeigen"
                on_press: root.manager.current = 'ortanzeigenScreen'
            Button:
                padding: 10, 10
                text: "Zurück zum Hauptmenü"
                on_press:
                    root.manager.current = 'hauptmenueScreen'
""")

# ScreenManger Screens einfügen
ms = ScreenManager()
ms.add_widget(KivyApp.Materialverwaltung(name="materialverwaltungsScreen"))
ms.add_widget(KivyApp.newMatTypeChoice(name="neuesmaterialanlegenScreen"))
# Backend Starten


class StartApp(App):
    def build(self):
        return ms


if __name__ == "__main__":
    StartApp().run()
Ich hoffe der gegebene Programmcode reicht aus.
Schonmal vielen Dank für eure Hilfe.
Mit freundlichen Grüßen
Dallnic
Antworten