Qt4 Sleep() funktion



  • Hi
    Gibt es in Qt4 eine Funktion, die mein Programm ein paar Sekunden schlafen lässt?
    Also so was wie Sleep() bei der WinAPI
    mfg



  • http://lists.trolltech.com/qt-interest/2007-01/thread00133-0.html

    Wie es aussieht nicht, aber hier is ne interessante Diskussion darüber mit Beispielen :).
    rya.



  • je nach dem, was man machen will, kann auch ein singleshot-timer helfen

    -edit-

    es gibt noch eine Möglichkeit...

    folgendes in das pro-file:

    CONFIG += qtestlib
    

    folgender include

    #include <QTest>
    

    und schon klappt folgendes:

    QTest::qSleep( 10000 ); // 10 Sekunden Pause
    


  • zwutz schrieb:

    und schon klappt folgendes:

    QTest::qSleep( 10000 ); // 10 Sekunden Pause
    

    Wobei qSleep auch das event-processing blockiert.
    Darum wird in der Doku zu qWait geraten (außer du willst wiklich das ganze User-Interface blockieren...).



  • hi ich benutze das hier für meine projekte:

    #ifndef XSLEEP_H
    #define	XSLEEP_H
    
    #include <QThread>
    
    class Xsleep : public QThread
    {
    public:
    	static void msleep(int ms)
    	{
    		QThread::msleep(ms);
    	}
    };
    
    #endif
    
    while (true)
    {
            ...
            Xsleep::msleep(1000); // 1 sek
            ...
    
    }
    


  • uiohuiguiiuuiuiggi



  • 09ujuj schrieb:

    uiohuiguiiuuiuiggi

    I think that is also a good example.



  • Du kannst auch einfach die #include <windows.h> einbinden und dann die Sleep() funktion nutzen.
    Besser ist es aber ne eigene Thread klasse zu schreiben mit ner static msleep Funktion wie GioFX schrieb.



  • Gibt es in Qt4 eine Funktion, die mein Programm ein paar Sekunden schlafen lässt?

    Einer der grossen "Goals" von Qt ist die assynchrone Programmierung, mit Signal/Slot Mechanismen.
    Also sowas wie sleep sollte man recht selten brauchen.
    Besser, weil näher am Konzept ist der SingleShot-Timer.

    Ansonsten braucht man sleep fast nur noch im Bereich multithreading, wenn man in nem Threads irgendwas noch etwas zeit geben will ... da wird auch die MsgQueue ned blockiert. Deshalb nehm ich an, steckt das sleep auch im QThread.

    TestRoutinen brauchen es auch, deshalb da auch im QTest ... aber Tests sind eher nicht für die auslieferung, sondern wirklich nur für tests, und das testframework in die Auslieferungs-binaries reinzuzuhen nur fuer das sleep ? wenn dann nimm das von QThread ^^

    Besser ist es aber ne eigene Thread klasse zu schreiben mit ner static msleep Funktion wie GioFX schrieb.

    Naja Schön ist es auch ned ^^ man umgeht den protected schutz der sleep methode, und ich geh mal davon aus, das trolltech/nokia/digia sich was dabei gedacht haben ...
    Aber manchmal muss man auch schlimme dinge tun ^^ und windows.h ist sicher auch kein schöner weg, sei denn man ist sowieso schon unportabel und mit der WinAPI verheiratet ...

    Ciao ..


Anmelden zum Antworten