Hintergrund-App ohne sichtbare Oberfläche aber mit Icon in System Tray

Fragen zu Tkinter.
Antworten
delphinis
User
Beiträge: 16
Registriert: Sonntag 5. Juli 2020, 07:34

Hallo,
ich möchte eine Hintegrund-App schreiben die nur Sichtbar wird, wenn ein Icon im System Tray angeklickt wird, um z.B. Einstellungen zu ändern.
Habe viel rumprobiert aber nichts hat so richtig funktioniert. Hat jemand ein Beispiel oder Tipps für so eine Anwendung?
Das Problem ist vor allem auch: Ich möchte alle 5 Minuten etwas tun. Aber die typischen Anwendungen mit Tkinter haben diese root.mainloop()
funktion. Wenn ich das richtig verstanden habe, reagiert die Anwendung dann nur noch auf Benutzereingaben über das GUI.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das hast du falsch verstanden. Sie reagiert nur auf Ereignisse. Das können Eingaben des Benutzers sein. Aber auch Timer Events. Die du mit der after-Methode erstellen kannst.

Zu deinem anderen Problem kann ich aus dem Stand nix sagen.
delphinis
User
Beiträge: 16
Registriert: Sonntag 5. Juli 2020, 07:34

Ok, dann würde das also erst mal auch mit Timer-Events funktionieren. Ich versuch das erst mal.
Nun müsste ich nur noch wissen, wie man das Hauptfenster versteckt und wieder hervorholt.
SaberGFX
User
Beiträge: 10
Registriert: Samstag 21. September 2019, 17:13

Zum zweiten Problem brauchst du Threads. Damit hast du dann mehrere unabhängige Prozesse die du ansteuern kannst.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

SaberGFX hat geschrieben: Sonntag 5. Juli 2020, 08:59 Zum zweiten Problem brauchst du Threads. Damit hast du dann mehrere unabhängige Prozesse die du ansteuern kannst.
Großes, dickes NEIN. Threads und GUIs funktionieren nicht gut zusammen. Und der TE zeigt auch gleich in seinem nächsten Thema, das es in die Hose geht.
SaberGFX
User
Beiträge: 10
Registriert: Samstag 21. September 2019, 17:13

Ich arbeite etwas mit Threads in GUIs und hatte noch keine Probleme!
delphinis
User
Beiträge: 16
Registriert: Sonntag 5. Juli 2020, 07:34

__deets__ hat geschrieben: Sonntag 5. Juli 2020, 08:18 Das hast du falsch verstanden. Sie reagiert nur auf Ereignisse. Das können Eingaben des Benutzers sein. Aber auch Timer Events. Die du mit der after-Methode erstellen kannst.
Finde diese after() Methode nicht, aber ich suche wohl im falschen package.
Welches package nutzt du denn?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist schon in tkinter, dem toolkit das du benutzt. Und es wird hier auch andauernd besprochen.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

SaberGFX hat geschrieben: Sonntag 5. Juli 2020, 09:11 Ich arbeite etwas mit Threads in GUIs und hatte noch keine Probleme!
Ich trage keine Gurt, und bin noch nicht bei einem Autounfall gestorben....

GUIs funktionieren immer nur in einem Thread, meistens dem Main-Thread. Natürlich kann man Threads und GUIs kombinieren, wenn man weiß, wie. Da du das nicht erwähnst, weißt du offensichtlich nicht wie. Und hast bis dato einfach Glück gehabt. Deswegen ist es aber trotzdem nicht das richtige Vorgehen.
Antworten