Wie eine Funktion aufzurufen, die in regelmäßigen Abständen in Qt?
Ist es möglich, eine Funktion aufzurufen, die in regelmäßigen Abständen in C++ mit Qt Funktion ?
Und so beenden Sie die zeitgesteuerte Funktion wird nach werden periodisch aufgerufen ?
Der doppelte Schildern: Die OP ist explizit zu Fragen, für eine Qt-Lösung, die "doppelte" zu beantworten ist eine generische C++ - Sie sind nicht das gleiche, das ist der Grund, warum die akzeptierte Antwort ist nicht das gleiche.
Was cmannett85 sagte
Was Lennart sagte 🙂
Was cmannett85 sagte
Was Lennart sagte 🙂
InformationsquelleAutor CDT | 2013-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit qt, Sie können Sie QTimer, die erstellt standardmäßig einen wiederholenden timer.
Gibt es ein Beispiel in der Dokumentation (siehe unten), und ein Beispiel (Analog-Uhr).
QTimer
ist angelegt wie ein Zeiger übernew
? Konnte ich nicht verwendenQTimer timer(this);
?In diesem Beispiel wird der timer erstellt, der Konstruktor. Wenn Sie verwendet eine lokale variable, die
timer
gehen würde out-of-scope, am Ende der Bau-und der timer zerstört werden würde und so nicht laufenOh...auch wenn die
QTimer
ist ein Mitglied der Klasse?Nein, wenn es ein Mitglied, es wird nicht gehen out of scope und so funktioniert ok.
Ja, das ist richtig
InformationsquelleAutor parkydr
Eine Möglichkeit wäre die Verwendung eines
QTimer
timeout
- signal und einQObject
slot. Verbinden Sie die beiden undstart()
den timer.http://qt-project.org/doc/qt-4.8/qtimer.html#timeout
Um den timer zu stoppen, rufen Sie
stop()
.InformationsquelleAutor user1095108
Können Sie die QTimer Klasse.
Nur erklären, sondern eine
QTimer
mit dem gewünschten Zeitintervall, wickeln Sie Ihre Funktion in einemQObject
als einen Steckplatz, und schließen Sie dasQTimer
'stimeout()
signal an den slot einfach erklärt.Dann, wenn die Bedingung zum anhalten der Aufruf der Funktion ist erfüllt, rufen Sie einfach
QTimer::stop()
.InformationsquelleAutor JBL
Als Menschen haben gesagt, in den Antworten vor mir sind, können Sie die timeout () - signal zum auslösen einer Funktion ausgeführt werden.
Wenn Sie wollen, um den timer zu stoppen an irgendeinem Punkt, dann können Sie auf die stop () - slot, oder rufen Sie es direkt selbst.
InformationsquelleAutor RobbieE
Machen eine Funktion mit timer-Funktion, oder eine while-Schleife, wartet 100 ms und wenn Sie Ihre Funktion erfüllt die Anforderung nur brechen. Sie könnten ganz einfach eine Lösung gefunden, die auf diese ein, wenn Sie gerade eine Suche zwischen all den anderen Fragen, wurde hier gepostet.
InformationsquelleAutor Sniper90