Seite 1 von 1

QThread.exec() - Was muss ich beachten?

Verfasst: 6. Dezember 2006 12:56
von Matze-o
Moin,

ich habe im Forum zwar was über QThread.exec() gefunden, aber das beantwortete meine Frage nicht.

Wenn ich in run() exec aufrufe, muss ich noch irgenetwas schreiben, bevor sich exec wie iene schleife verhält, oder macht es das automatisch?

Code: Alles auswählen

int exec(void) {
		QMessageBox::information(0, "Main", "test.");
	return 0;
}
Oder kann es an dem return 0 liegen, dass er dann die exec beendet?
edit: auch ohne geht nich

Thx schonmal

Verfasst: 6. Dezember 2006 17:35
von upsala
Warum überschreibst du QThread::exec()? Außerdem kannst in deinen Threads keine Grafik-Funktionen aufrufen!

Verfasst: 7. Dezember 2006 08:28
von Matze-o
a. was mach ich? ich überschreibe die exec? wie mache ich das denn?
b. das kann man nich? das würde einiges erklären, warum geht das nicht? das ist totaler mist

Verfasst: 7. Dezember 2006 09:21
von Christian81
Und mal wieder der Hinweis
ES GIBT EINE DOKU in der steht wie man einen Thread erzeugt! Dort wird gezeigt was man überladen muss.
Und das nur der MainThread zeichnen kann ist nicht eine Qt-only Beschränkung...

Verfasst: 7. Dezember 2006 10:53
von Matze-o
danke, die Doku hab ich mir 10 mal mindestens reingezogen, aber nicht verstanden.

Ich zeichne jetzt auch wieder im main.

Verfasst: 7. Dezember 2006 11:00
von Christian81
Was ist an dem gezeigten Codeschnipsel so schwer zu verstehen?

Verfasst: 7. Dezember 2006 15:52
von Matze-o
Alles???

Weißt du wie lange ich Qt versuche zu lernen? Heute ist der zweite Tag.

Und c++ habe ich zwei Wochen vorher gemacht.

Verfasst: 7. Dezember 2006 15:59
von Christian81
Dann fang nicht mit sowas schweren an und arbeite das Tutorial durch und schau dir die Examples/Demos an...

Verfasst: 7. Dezember 2006 16:00
von macman
Du hast wirklich geglaubt in 2 Tagen alles zu verstehen? Try&Error sag ich nur. Spiel mit den Examples, dadurch begreift man am besten wie es funktioniert. Und debuggen natürlich, nicht nur wenn ein Fehler auftritt.