Wie erstellt man unter Python Kivy zweite Button?

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
PrinzPersia
User
Beiträge: 12
Registriert: Donnerstag 12. Mai 2022, 18:48

Hallo.

Also ich versuche unter Kivy so zu machen, das mir dann zwei Schalter (Buttons) anzeigt und habe diese Methode probiert:

Code: Alles auswählen

import os
os.environ['KIVY_IMAGE'] = 'pil,sdl2'

import kivy
kivy.require('1.9.0') # Mindest-Version von Kivy

from kivy.app import App
from kivy.uix.button import Button

class HelloApp(App):

    def build(self):
        Schalter = Button(text='Hallo Welt!')
        Schalter2 = Button(text="Hallo Welt")
        return Schalter
        return Schalter2  

if __name__== "__main__":
    HelloApp().run()
Allerdings wird mir trotzdem nur ein Button angezeigt:

Bild

Weiß jemand wie man zweiten Button erstellt?
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@PrinzPersia: ``return`` beendet die Funktion. Das zweite ``return`` kann danach nicht mehr ausgeführt werden. Es wäre auch komisch weil undefiniert was denn zwei ``return`` überhaupt bedeuten sollen. Da steht *der* Rückgabewert dahinter. Mehrere müssten dann ja irgendwie zusammengefasst werden. Aber wie? Als Tupel? Als Liste? So funktioniert das nicht.

Die `build()`-Methode muss das zurückgeben was in der GUI angezeigt werden soll. Also *ein* Widget (das die Wurzel eines Widgetbaums sein kann). Wenn es mehrere sein sollen, müssen die in einem entsprechenden Containerwidget zusammengefasst werden. Bei Kivy beispielsweise in einem Layout-Objekt wo die beiden Buttons irgendwie angeordnet werden (übereinander/nebeneinander).
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Fairerweise muss man sagen, dass mit "yield" ja schon eine Moeglichkeit existiert, mehrfach Dinge zurueckzugeben. Der Gedanke, dass return das kann, liegt nicht so fern. Aber so ist es eben nicht gedacht in Kivy.
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Es wäre ratsam, sich einmal die Kivy Anleitung vorzunehmen, und die Beispiele daraus durchzuarbeiten, zum Beispiel hier:

https://kivy.org/doc/stable/guide/basic.html#quickstart

Da werden auch schon mehr als zwei Buttons benutzt.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten