MyTetra Share
Делитесь знаниями!
Как сделать задержку в Qt
Время создания: 25.11.2017 11:56
Текстовые метки: c++, qt, задержка, пауза, время, sleep, таймер
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Нестандартное использование Qt
Запись: xintrea/mytetra_syncro/master/base/1511600162evxch4q7yk/text.html на raw.github.com

В событийно-ориентированном программировании (event driven programming), в парадигме которого спроектирован Qt, нет причин в создании задержек в коде. Вместо этого следует использовать, например, класс QTimer, который с заданной частотой может вызывать нужные функции (методы).


Но иногда, особенно при прототипировании, необходимо по-быстрому вставить, например, задержку в какой-нибудь цикл, чтобы успеть отследить какой-то быстропротекающий процесс. Сделать это можно с помощью такого класса:



class Sleeper : public QThread

{

public:

static void usleep(unsigned long usecs){QThread::usleep(usecs);}

static void msleep(unsigned long msecs){QThread::msleep(msecs);}

static void sleep(unsigned long secs){QThread::sleep(secs);}

};



Вызывать остановку исполнения кода (сон) можно так:



Sleeper::msleep(2000);



Еще раз следует напомнить: в продакшене такое использовать нельзя. Данная методика пригодна только в момент экспериментирования с кодом.


 
MyTetra Share v.0.59
Яндекс индекс цитирования