// hier will ich die aktualisierung anstoßen
void KOffDialog::accept()
{
if( minToVal() > 0)
for(int i=minToVal(); i >= 0; i--)
{ TimeLeft = i;
wait();
}
}
// hier soll der Timer 1s verweilen und dann updateTime starten, der Timer wird im Konstruktor mit refreshTimer = new Timer(this); initialisiert
// und so "connected": connect( refreshTimer, SIGNAL(timeout()), this, SLOT(updateTime()));
void KOffDialog::wait()
{
refreshTimer->start(1000, TRUE);
}
void KOffDialog::updateTime()
{
labelMinLeft->setNum(TimeLeft);
labelMinLeft->update();
statusBar->update();
}
Der Aufruf von QTimer::start() führt zu keiner Verzögerung im Programmablauf, d.h. dein Programm startet zur Zeit einfach den Timer mehrmals unmittelbar hintereinander neu.
Der Timer kann sein Signal erst senden wenn das Programm zur Hauptschleife zurückkehrt, d.h. in diesem Fall erst nach Verlassen von accept().
habe das problem gelöst, indem ich den timerEvent() neuimplementiert habe. der wird dann nämlich von der hauptschleife gestartet und aktualisiert jedesmal das fenster.