Kivy Buttons ohne KV einfügen
Verfasst: Mittwoch 9. Dezember 2020, 13:48
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:
Ich hoffe der gegebene Programmcode reicht aus.
Schonmal vielen Dank für eure Hilfe.
Mit freundlichen Grüßen
Dallnic
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()
Schonmal vielen Dank für eure Hilfe.
Mit freundlichen Grüßen
Dallnic