Zwei getrennte Apps im Wechsel öffen

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
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

Hey Leute
Kann man in Kivy durch jeweiligem Buttonklick zwischen zwei Apps hin- und herwecheln.
Dabei soll die erste App geschlossen und die zweite App mit anderer physikalischer Größe (Itemgröße) gestartet werden. Dann wieder die erste App im Fullscreen, usw.

Code: Alles auswählen

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


class FirstApp(App):
    def build(self):
        layout = BoxLayout(orientation='vertical')
        button = Button(text='Schließen und Zweite App starten')
        button.bind(on_press=self.switch_to_second_app)
        layout.add_widget(button)
        return layout

    def switch_to_second_app(self, instance):
        self.stop()  # Schließt die erste App
        SecondApp().run()  # Startet die zweite App


class SecondApp(App):
    def build(self):
        layout = BoxLayout(orientation='vertical')
        button = Button(text='Zurück zur Ersten App')
        button.bind(on_press=self.switch_to_first_app)
        layout.add_widget(button)
        return layout

    def switch_to_first_app(self, instance):
        self.stop()  # Schließt die zweite App
        FirstApp().run()  # Startet die erste App


if __name__ == '__main__':
    FirstApp().run()
Das funktioniert so nicht, weil man eine App nicht direkt im selben Mainloop wieder öffnen kann.
Aber irgendwie soll das mit der on_pause-Funktion funktionieren?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Es darf nur eine App geben. Wie bei allen GUI-Frameworks. Will man mehrere Bildschirme haben, benutzt man einen Screenmanager: https://kivy.org/doc/stable/api-kivy.ui ... nager.html
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

abgesehen davon will man es doch auch gar nicht das App $FOO automagisch App $BAR schließt und umgekehrt, weil App Öffnen und Schließen Sache und Endscheidung des Benutzers ist. Und AFAIK laufen Apps auf dem Smartphone zumindest in Android und iOS in einem eigenen Kontext (Sandbox), so dass die die anderen Apps sowieso nicht sehen. Auf Desktoprechner braucht man AFAIK dafür auch den richtigen Rechtekontext bzw. erhöhe Rechte. Was ja auch gut ist, damit z.B. Chrome bei Öffnen nicht ungefragt eine laufenden Instanz von Firefox schließen kann.

Was geht ist, dass App $FOO App $BAR auf Rückfrage öffnet. Meine Banking-App bietet bei einer Transaktions z.B. an, die Authentifizerungs-App zu öffnen. Die Rückkehr von der Auth-App zur Banking App erfolgt aber durch mich, nicht automatisch.

Gruß, noisefloor
Antworten