Dialogfenster öffnet sich nicht vor Berechnung
Verfasst: 11. Mai 2009 23:26
Hallo!
Ich habe eine Dialogklasse von QDialog abgeleitet dynamisch erzeugt und will, dass das
Dialogfenster erscheint. Es zeigt an, dass eine länger andauernde Berechnung folgt und
bittet den Benutzer darum, etwas zu warten.
dialog->show();
dialog->raise();
dialog->activateWindow();
// Zeitintensive Berechnung
//...
// Berechnungsende
dialog->close();
-funktioniert nicht. Durch einen Trick mit der Änderung der Dialogfenstergröße konnte ich
erkennen, dass das Dialogfenster zwischen dem Berechnungsende und dialog->close()
kurz und kaum sichtbar "aufblitzt". Ich habe mir gedacht, dass das Qt-System nicht genug Zeit hat, das Dialogfenster vor der Berechnung zu zeichnen und dass es deshalb
nicht erscheint. Also habe ich eine Thread-Klasse von QThread abgeleitet erzeugt, die
den Dialog in einem extra Thread mit dialog->exec () startet. Leider war auch das er-
folglos. Das Dialogfenster ist nicht erschienen. Ich frage mich, wie man z.B. einen
Dialog starten soll, der mit einer Progressbar den Fortschritt eines rechenintensiven
Abschnittes anzeigen soll. Ich will ja einfach nur "Bitte warten..." ausgeben.
Weiß jemand eine Lösung?
Ich habe eine Dialogklasse von QDialog abgeleitet dynamisch erzeugt und will, dass das
Dialogfenster erscheint. Es zeigt an, dass eine länger andauernde Berechnung folgt und
bittet den Benutzer darum, etwas zu warten.
dialog->show();
dialog->raise();
dialog->activateWindow();
// Zeitintensive Berechnung
//...
// Berechnungsende
dialog->close();
-funktioniert nicht. Durch einen Trick mit der Änderung der Dialogfenstergröße konnte ich
erkennen, dass das Dialogfenster zwischen dem Berechnungsende und dialog->close()
kurz und kaum sichtbar "aufblitzt". Ich habe mir gedacht, dass das Qt-System nicht genug Zeit hat, das Dialogfenster vor der Berechnung zu zeichnen und dass es deshalb
nicht erscheint. Also habe ich eine Thread-Klasse von QThread abgeleitet erzeugt, die
den Dialog in einem extra Thread mit dialog->exec () startet. Leider war auch das er-
folglos. Das Dialogfenster ist nicht erschienen. Ich frage mich, wie man z.B. einen
Dialog starten soll, der mit einer Progressbar den Fortschritt eines rechenintensiven
Abschnittes anzeigen soll. Ich will ja einfach nur "Bitte warten..." ausgeben.
Weiß jemand eine Lösung?