Netzwerk-Threads in PyQt5-Anwendungen
Parallele Anwendungen haben Tücken. Bei Netzwerkanfragen in grafischen Programmen mit PyQt5 kommt man um Threads jedoch kaum herum.
Bei der Android-App zum Kalorien zählen "Lose It!" fragte ich mich zuletzt, ob sie ihre Daten auch wie beworben mit Google Fit synchronisiert.
Also schrieb ich mir ein Programm mit PyQt5, das Google Fit abfragt und alle Nahrungsmitteleinträge der letzten Woche anzeigt. Für den Zugriff auf das REST-API sind natürlich Netzwerkanfragen nötig und als brave Programmiererin wusste ich: Netzwerkanfragen sollten man nie im Haupt-Thread eines grafischen Programms absetzen, weil diese das Interface blockieren, bis die Antwort da ist.
Zum Glück bringt Python die Klasse Thread mit, mit der ich in ein paar Zeilen einen eigenen Thread für den Request definieren kann: