QThread und QWidget gleichzeitig?

Alles rund um die Programmierung mit Qt
Antworten
avenger
Beiträge: 7
Registriert: 12. November 2007 16:47

QThread und QWidget gleichzeitig?

Beitrag von avenger »

Ich habe ein Fenster erstellt (also Klasse mit QWidget). Nun wollte ich, dass das Programm dateien runterlädt und diese verarbeteit, soweit sogut. Aber: Das Programm bleibt stecken, während er die Datei runterlädt (etwas unelegant gelöst mit ner While-Schleife). Nun wollte ich einen Thread aus der funktion machen, sodass das Fenster noch weiter funktioniert währen der Thread halt die Dateien runterlädt + verarbeitet, leider kommt aber folgender Fehler:

Code: Alles auswählen

UpdaterWindow.cpp(17) : error C2594: 'Argument': Mehrdeutige Konvertierung von 'UpdaterWindow *const ' in 'const QObject *'
(gibt noch paar mehr fehler gleicher art, nur andere Zeile)

hier ist der ganz Code:
http://mandrill.fuxx0r.net/c++/paste:7951
(der fehler ist in dem fall in der Zeile 82)

mfg


p.s.: sollte der code nicht optimal geschrieben sein, ist das wurst, weil erstmal nur alles gut funktionieren soll, bevor ich alles optimiere
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Nur der Hauptthread kann auch zeichnen, also hat es keinen Sinn von QWidget und QThread gleichzeitig abzuleiten. Siehe auch thread-demos/examples von Qt
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
avenger
Beiträge: 7
Registriert: 12. November 2007 16:47

Beitrag von avenger »

wie würdest du des dann am blödsten anstellen?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

In Threads kann man immer nur berechnen lassen, nur der Hauptthread kann zeichnen. Die Ergebnisse wqürde ich dann (mit Qt4) per Signals&Slots dem Hauptthread übergeben.
Siehe Thread-Examples (z.B. mandelbrot)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
avenger
Beiträge: 7
Registriert: 12. November 2007 16:47

Beitrag von avenger »

danke, werd ich machen
Antworten