Threads in QT Jambi

Alles zum Qt Framework für Java
Antworten
voka
Beiträge: 4
Registriert: 12. Januar 2008 10:23

Threads in QT Jambi

Beitrag von voka »

2. Versuch eine Antwort zu bekommen.

Nachdem mir keiner eine Auskunft zu QHTTP geben kann, versuche ich es nochmal anders.
Ich bewege mich in einem Thread und möchte darin ein neues Fenster öffnen. Um damit arbeiten zu können, brauche ich eine 2. Ereignisschleife. In QT Jambi scheint in einem Thread aber keine Möglichkeit zu bestehen, ein weiteres Fenster zu öffnen und dafür eine neue Ereignisschleife zu erstellen?
Wenn doch, wie geht es?
Hat niemand das gleiche Problem oder arbeitet ihr alle nur ohne Threads?

Vielen Dank im Voraus für eine Antwort
voka
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich weiss nicht ob es in QtJambi anders ist, aber bei Qt kann nur der MainThread zeichnen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Es ist auch in QtJambi so, dass GUI Ausgaben nur im MainThread durchgeführt werden können. Auch die Ereignisschleife des QCoreApplication kann man nur im main-thread laufen lassen.

Wenn Du irgendwelche Ergebnisse von Deinem 2. Thread in einem Fenster darstellen möchtest, musst Du wohl den 1. Thread (z.B. durch Signal - Slot über Threads hinweg) benachrichtigen, damit dieser die Darstellung übernimmt.

Im übrigen sendet jedes QThread nach seinem Ende ein Signal aus, auf das man im Haupthread reagieren kann.

Gruß Arne
voka
Beiträge: 4
Registriert: 12. Januar 2008 10:23

Beitrag von voka »

Danke für die Antworten. Leider lösen sie nicht mein Problem.
Ich muss in dem Thread auch auf verschiedene Benutzereingaben warten. Baue ich aber eine wait- Schleife ein, reagiert überhaupt nichts mehr. Ich probiere nun schon einige Wochen rum. Aber irgendwie scheine ich das Konzept von QT noch nicht verstanden zu haben. KDE usw. funktioniert doch auch.

Gruß voka
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Die Benutzereingaben sollten auch im Main-Thread eingelesen werden.
Schau Dir bitte das Signals/Slot - Konzept an...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
voka
Beiträge: 4
Registriert: 12. Januar 2008 10:23

Beitrag von voka »

Ich habe mein Programm umgestellt. Mir war bisher unklar, dass QT so strikt mit Slots/ Signalen arbeitet.
Nun lese ich hintereinander im Main- Programm mit QHTTP in einer Schleife Dateien ein. Das funktioniert. Nur sehr langsam, da immer nur eine Datei nach der anderen gelesen wird. QHTTP ist also intern synchronisiert.
Probiere ich das ganze mit mehreren Threads und mit HTTPClient, ist die gleiche Anzahl Dateien in einem Bruchteil der Zeit heruntergeladen.
Gibt es eine Lösung, um den Download zu beschleunigen?

MfG
voka
Antworten