ich habe eine Frage zur logischen Anwendung von QTimer. Grundsätzlich habe ich die Funktionsweise schon verstanden, habe aber gerade ein Problem wie ich einen QTimer logisch in meiner Aufgabe einsetze (den code bekomm' ich wohl nacher schon hin...
Hier die Idee des Programms: Der Anwender bekommt eine bestimmte Anzahl von Fragen, für die er jeweils eine bestimmte Zeit zur Verfügung hat. Diese Zeit pro Aufgabe soll in einem Countdown (LCDNumber) herunter gezählt werden.
Hier der entsprechende Abschnitt aus dem Programm (ich hab's etwas vereinfacht, also nicht daran stören, dass es nicht korrekte C++ oder QT Syntax ist):
void MainWindow::startTest()
{
for (int i=1; i < maxaufgaben;i++) {
aufgabe();
update();
}
}
void MainWindow::update()
{
if (restzeit > 0) {
QTimer::singleShot(1000, this, SLOT(update()));
restzeit = restzeit -1;
LCDDisplay->display(restzeit);
}
}
Mein Problem ist nun, dass die Prozedur startTest() nach dem Aufruf von update(), weiter läuft und immer neue Aufgaben erstellt und neue Timer startet. Aber eigentlich soll mit der Erstellung einer neuen Aufgabe gewartet werden, bis der Timer abgelaufen ist.
Ich vermute mal, dass die Lösung völlig trivial ist, aber ich komme echt nicht darauf.
Danke im Voraus!!
Gruß, Carsten