000
18.12.2004, 09:28 Uhr
derphilipder
|
Hallo!
Folgendes Problem: Ich habe ein Widget, das ich aus einem Thread(public QApplication, public QThread) heraus aufrufe. In diesem Widget gibt es eine Graphikausgabe. Das Widget wird vorher in einer Methode des Threads mit new erzeugt. Wenn ich es mit show() anzeige, wird es einmal gezeichnet, befindet sich aber sofort hinter meinem Menüfenster(Konsole), so daß der verdeckte Bereich nach dem Verschieben des Fensters weiß ist und leider auch bleibt, d.h. es findet kein repaint statt. Auch aus dem Thread kann ich, obwohl ich den Pointe auf das Widget noch habe, dieses nicht mehr mit repaint() o.ä. ansprechen. Wenn ich dieses Widget schon im Konstruktor des Threads erzeuge, findet der repaintvorgang ganz normal statt.
In beiden Fällen lässt sich jedoch das Widget nicht geregelt beenden. Wenn ich auf X klicke, bekomme ich von Windows die Meldung, daß die Anwendung nicht reagiert. Wenn ich das Konsolenfenster schließe, wird das Widget aber ganz normal mitbeendet.
Ich hab echt keinen Plan, was da los ist. Warum ist es überhaupt ein Unterschied, ob ich das Widget in der Methode oder im Konstruktor erzeuge? -- Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!" |