Ich möchte die Funktion "saveTraining()" 20 Sekunden nach einer anderen Funktion ausführen. Dazu ist, meiner Meinung nach, ein SingleShot-Timer genau die richtige Wahl.
Wenn ich folgenden Befehl in meiner Funktion ausführe
Code: Alles auswählen
QTimer::singleShot( 20000, this, SLOT(saveTraining()));
Wenn ich jedoch versuche beim Aufruf des Befehls ein Argument zu übergeben:
Code: Alles auswählen
QTimer::singleShot( 20000, this, SLOT(saveTraining(5)));
Anmerkung:
-Ich habe bereits erfolglos versucht andere Argumente (z.B. QString, QPointF) zu übergeben.
-Der Compiler tut seine Arbeit ohne Fehlermeldung und Warnung
-In meiner .h-Datei steht der richtige Prototyp unter "public slots:"
-Ich habe ebenfalls versucht die übergebene Variable als Klassenvariable zu deklarieren. Ich dachte es könnte ein Problem sein, dass die aufrufende Funktion zum Zeitpunkt des Feuerns des Timers schon beendet und alle darin erzeugten Objekte (die zu übergebenen Variablen) schon zerstört sind.
-Version Qt 4.1.2 Open Source
Wo liegt mein Fehler? Kann man vielleicht bei einem Singleshot keine Argumente übergeben? In der Doku habe ich da jedenfalls keinen Satz drüber gefunden.
Hulk