QCoreAppliaktion in einer dll
-
- Beiträge: 80
- Registriert: 6. Januar 2005 12:54
QCoreAppliaktion in einer dll
Hallo Leute,
bis jetzt habe ich meine QT-Applikationen immer im main gestartet. Nun wird meine QCoreApplikation in einer lib aufgerufen und hier kann ich ja nicht die statische Methode exec() aufrufen.
Hat mir da jemand ein Lösungsvorschlag?
Vielen Dank
bis jetzt habe ich meine QT-Applikationen immer im main gestartet. Nun wird meine QCoreApplikation in einer lib aufgerufen und hier kann ich ja nicht die statische Methode exec() aufrufen.
Hat mir da jemand ein Lösungsvorschlag?
Vielen Dank
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
- Beiträge: 80
- Registriert: 6. Januar 2005 12:54
Wir arbeiten an einem Projekt in der Schule, dort wird durch eine externes Prgramm, welches wir(Studenten) keinen Einfluss haben, eine Instanz meines Programmes kreiirt und dannach zyklisch eine Update Methode aufgerufen.
Nun da mein Programm mit QT und Signal/Slots benütze, brauche ich ja eine QCoreApp. Nun wenn ich die im Konstrukter kreiire und mit exec() starte, bleibt es ja im QT Eventloop hängen. Und somit wird ja die ganze Maschinerie von dem main- Programm gestopt.
Nun gibt es eine Möglichkeite dies irgendwie zu umgehen? Klar das einfachste wäre, wenn mir der Lehrer in seinem Programm schon ein QCoreApplikation starten würde. Aber so wie Lehrer halt sind, das möchte er einfach nicht. Wieso auch immer...
Nun da mein Programm mit QT und Signal/Slots benütze, brauche ich ja eine QCoreApp. Nun wenn ich die im Konstrukter kreiire und mit exec() starte, bleibt es ja im QT Eventloop hängen. Und somit wird ja die ganze Maschinerie von dem main- Programm gestopt.
Nun gibt es eine Möglichkeite dies irgendwie zu umgehen? Klar das einfachste wäre, wenn mir der Lehrer in seinem Programm schon ein QCoreApplikation starten würde. Aber so wie Lehrer halt sind, das möchte er einfach nicht. Wieso auch immer...
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Wenn es nur um signals und slots geht, würden sich directconnections anbieten, die brauchen keine eventloop. Qt Threads haben keine eigene event loop. Man muss dann, wenn man in der DLL threads benutzt, die aufrufe selber synchronisieren.
Man könnte versuchen, in der DLL eine eigene Eventloop zu starten. Aber ob das den aufwand wert is... und dann is noch die frage, obs nicht probleme gibt wenn irgendwann doch mal eine qcoreapplication läuft.
Man könnte versuchen, in der DLL eine eigene Eventloop zu starten. Aber ob das den aufwand wert is... und dann is noch die frage, obs nicht probleme gibt wenn irgendwann doch mal eine qcoreapplication läuft.
-
- Beiträge: 80
- Registriert: 6. Januar 2005 12:54
Na, einfach:
Code: Alles auswählen
QObject::connect(p1, SIGNAL(foo()), p2, SLOT(bar()), Qt:DirectConnection);