Hallo,
ich will eine alte nicht Qt Anwendung mit einer DLL erweitern, welche ich mit Qt4.1.1 implementiert habe. Der Thread läuft und das Http Objekt wird angelegt, allerdings wird kein Event in dem exec()-Aufruf in der run()-Methode meines Threads abgearbeitet.
Was muß ich ändern? Bei dem Versuch eine QEventLoop zu verwenden, hat diese verlangt, daß ein QApplication Objekt existieren muß.
Qt4 DLL mit Thread und Http Objekt in einer nicht Qt Appl.
-
mbreitinger
- Beiträge: 15
- Registriert: 16. November 2005 11:00
- Wohnort: Blaubeuren
- Kontaktdaten:
Qt4 DLL mit Thread und Http Objekt in einer nicht Qt Appl.
- Dateianhänge
-
- RehmProcessDataExchange.zip
- Die DLL wird über die Funktionen in callfkt.h aufgerufen.
- (19.55 KiB) 143-mal heruntergeladen
Re: Qt4 DLL mit Thread und Http Objekt in einer nicht Qt App
Jede DLL hat ihre eigene Event-Schleife, insbesondere die QT-Plugins, daher bekommt deine Hauptapplikation auch nichts von dem Event mit. Dies wirst du auf dem Wege nicht lösen können. Vielleicht tut es das, indem du eine eine Funktion schreibst, die die Hauptapplikation benachrichtigt, bzw. dort den Event auslöst?!mbreitinger hat geschrieben:Hallo,
ich will eine alte nicht Qt Anwendung mit einer DLL erweitern, welche ich mit Qt4.1.1 implementiert habe. Der Thread läuft und das Http Objekt wird angelegt, allerdings wird kein Event in dem exec()-Aufruf in der run()-Methode meines Threads abgearbeitet.
Was muß ich ändern? Bei dem Versuch eine QEventLoop zu verwenden, hat diese verlangt, daß ein QApplication Objekt existieren muß.
-
mbreitinger
- Beiträge: 15
- Registriert: 16. November 2005 11:00
- Wohnort: Blaubeuren
- Kontaktdaten:
Lösung
Nach einigem Tüfteln habe ich herausgefunden, daß ich die Objekte, deren SLOTS im neuen Workerthread bearbeitet werden sollen, aus dem erzeugenden Thread heraus mit moveToThread in den Workerthread verschieben muß. Danach ist es egal wie die Anwendung geschrieben ist; die neue Erweiterung läuft komplett mit den Möglichkeiten von Qt.
Re: Lösung
Ok, ich habe das etwas falsch verstanden. Jetzt weiß ich, was du meintest.mbreitinger hat geschrieben:Nach einigem Tüfteln habe ich herausgefunden, daß ich die Objekte, deren SLOTS im neuen Workerthread bearbeitet werden sollen, aus dem erzeugenden Thread heraus mit moveToThread in den Workerthread verschieben muß. Danach ist es egal wie die Anwendung geschrieben ist; die neue Erweiterung läuft komplett mit den Möglichkeiten von Qt.