waitms in qt
-
Hallo,
gibt es eine Möglichkeit, für n ms warten zu lassen?
Viele Grüße
-
Du darfst die Doku bemühen wenn du was wissen willst. Geht schneller und die Gefahr angemotzt zu werden ist geringer.
Qt Assistant -> Search "wait" -> qWait()
-
Das qWait() habe ich schon probiert. Dazu muss man ja QTest includen. Aber schon da kommt bei mir ein Fehler.
-
Karl Egon schrieb:
Aber schon da kommt bei mir ein Fehler.
Dann frag doch nicht nach nem "waitms in Qt" sondern sag "ich hab Probleme mit qWait()". Dazu solltest du natürlich auch den Fehler mitposten den du bekommst. Ansonsten kann man nicht helfen.
Aber auch hier -> Doku.
Scroll ganz nach oben auf der Seite, da steht unter der großen Überschrift immer, in welchem Modul das aktuell Gesehene zu finden ist. Das klickst du an. Hier: QtTest. Und da steht dann genau was du machen musst.
-
Beim includen kommt:
error: QTest: No such file or directory
-
Karl Egon schrieb:
Beim includen kommt:
error: QTest: No such file or directory
Ich hab mehr als nur den ersten Absatz geschrieben
Die Doku sagt dir alles was du wissen musst. Sieh das hier nicht als Gängelung, sondern eine geführte Übung in den Assistant
-
Ok man muss also gegen die Testlib linken. Aber ist die nicht nur zum testen von Applikationen da? Also nciht für fertige Anwendungen? Es geht ja auch so ein Ausgabefenster für die QDebugs auf. Kann man das wenigstens verhindern?
-
Nein, das hängt nicht zusammen. Testen und Debuggen sind zwei verschiedene Ansätze, Code von Fehlern zu befreien. Hast du vllt. gerade nen debug-build am Laufen?
Warten (qWait, qSleep) wird im Code eh nicht wirklich notwendig sein. Wenn du Verzögerungen haben willst, nimmst du eher einen QTimer. Deshalb wird qSleep/qWait auch in QtTest liegen, weil man in einem Test innerhalb einer Funktion in bestimmten Abständen ohne SIGNAL/SLOT/timerEvent() (und damit QTimer) Funktionen ausführen will.
Les dich auch mal in den Unterschied zwischen qWait und qSleep ein.Warum willst du denn ein wait haben?
-
Den programmablauf per wait bzw sleep warten zu lassen kannst du in einem thread, indem du von QThread erbst (die methode sleep ist protected). Den mainthread warten zu lassen ist nicht unbedingt so sinnvoll, aber manchmal evtl nötig. Vielleicht hilft dir da QWaitCondition weiter.
-
Also ich muss ähnlich wie in dem QtDoku Beispiel auf ein Event von außen warten.
Das Debugfenster geht auf, sobald ich QTest include. Auch wen ich die Config auf release habe. Da werden dann die ganzen QDebugs ausgegeben.
-
Karl Egon schrieb:
Also ich muss ähnlich wie in dem QtDoku Beispiel auf ein Event von außen warten.
Event und Polling sind zwei verschiedene Sachen. Du frägst alle paar ms (dafür willst du wohl qWait()) nach ob sich was getan hat (==polling). Auf ein Event wartet man aber passiv: Callback setzen, SIGNAL/SLOT/...
Und was ist eigentlich "das QtDoku Beispiel"? In der Doku gibt es massenhaft Beispiele.Das Debugfenster geht auf, sobald ich QTest include.
Was für eine Plattform? Welcher Compiler? Welche IDE? Selbes Verhalten wenn du das Programm aus der Console/Filemanager startest, also nicht aus der IDE?
Ich habe hier (Qt-4.6.2, gcc-4.4.3, Gentoo Linux) kein Verhalten wie du es beschreibst.