Hallo zusammen,
ich möchte testweise eine Anwendung mit GUI erzeugen, die Informationen eines angeschlossenen Geräts anzeigt. Hierfür habe ich aktuell ein Python-Script welches aber in einer Endlos-Schleife mit dem Gerät kommuniziert und die Daten auf der Konsole ausgibt.
In C# würde ich die Kommunikation in einem Hintergrundthread laufen lassen und mit Events die GUI über Änderungen benachrichtigen. Wie würde man hier am besten in Python vorgehen?
Danke für eure Hilfe!
GUI und Hintergrundthread - richtiger Ansatz
- __blackjack__
- User
- Beiträge: 13236
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@ProXy: Das kommt darauf an welches GUI-Rahmenwerk Du verwenden willst. Bei Tk verwendet man üblicherweise Queues um Daten vom Hintergrundthread zum GUI-Thread zu übermitteln und schaut da mittels `after()` regelmässig nach ob was angekommen ist.
Die meisten anderen GUI-Rahmenwerke haben da etwas ausgefeiltere Mechanismen. Qt beispielsweise Signals/Slots. Bei Gtk gibt es auch ein Signal-Konzept und man kann mit `Glib.idle_add()` Code von anderen Threads aus in der GUI-Hauptschleife, also im GUI-Thread, ausführen lassen. Mehr haben die jeweiligen Dokumentationen dazu.
Die meisten anderen GUI-Rahmenwerke haben da etwas ausgefeiltere Mechanismen. Qt beispielsweise Signals/Slots. Bei Gtk gibt es auch ein Signal-Konzept und man kann mit `Glib.idle_add()` Code von anderen Threads aus in der GUI-Hauptschleife, also im GUI-Thread, ausführen lassen. Mehr haben die jeweiligen Dokumentationen dazu.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.
Danke für die ausführliche Antwort. Gibt es ein GUI-Framework, dass du mir guten Gewissens empfehlen kannst? Wie es scheint sind Tk und Qt recht weit verbreitet, was ich so gesehen habe, würde ich eher zu Qt tendieren.
Ich möchte die Oberfläche auf einem Raspberry Pi mit einem kleinen Touch-Screen anzeigen..
Ich möchte die Oberfläche auf einem Raspberry Pi mit einem kleinen Touch-Screen anzeigen..