Code: Alles auswählen
QNetworkAccessManager manager;
QNetworkReply* reply;
reply = manager.get(*request);
Ich verwende den Code allerdings auch noch in einem anderen Umfeld:
Ich habe eine Python-Anwendung, aus der ich über die Python-Bindings von PyQt auf Qt zugreife. Meinen obigen Code (der auch das QMainWindow enthält) habe ich in eine dll kompiliert und auch Python-Bindings erstellt. Ich starte also in meinem Python Skript meine QApplication, instanziiere von dort mein QMainWindow aus der dll und rufe den obigen Code mit dem QNetworkAccessManager auf. Jetzt friert der Code an der Stelle ein, wo ich den get-Request absende.
Bei stackoverflow habe ich eine ähnliche Fehlerbeschreibung gefunden:
http://stackoverflow.com/questions/1186 ... led-in-dll
Der Ansatz zur Lösung auf meine Situation übertragen ist etwa folgendermaßen:
In der dll, die den get-Request absetzt, existiert soweit keine Instanz von QApplication. Ich müsste also in der dll eine QApplication initialisieren, die mit der in meinem Python Skript erzeugten QApplication-Instanz identisch ist. Mir ist nur nicht klar, wie ich das machen soll (und ob das überhaupt in die richtige Richtung geht): Ich kann zwar aus meiner Python-Anwendung den qApp - Zeiger an meine dll übergeben, nur was mache ich damit? Der Kopierkonstruktor von QApplication ist privat ... wie kann ich sicherstellen, dass an der Stelle des get-Requests dasselbe QApplication Objekt existiert? (Und ist das überhaupt die Ursache für das eigentliche Problem ...?)