Название: Аналог Delay Отправлено: Примерный ученик от Октябрь 31, 2009, 13:18 Есть ли в QT3.3.8 аналог функции Delay(int msec).
Нужно сделать паузу секунд на 20. Или только через QTimer? Название: Re: Аналог Delay Отправлено: Примерный ученик от Октябрь 31, 2009, 13:53 В, общем, сделал
Код: QTime d=QTime::currentTime(); Название: Re: Аналог Delay Отправлено: Igors от Октябрь 31, 2009, 13:59 Есть qSleep, qWait
Название: Re: Аналог Delay Отправлено: Примерный ученик от Октябрь 31, 2009, 14:10 Название: Re: Аналог Delay Отправлено: Mikhail от Октябрь 31, 2009, 18:24 проще всего используй QTime::elapsed ()
int QTime::elapsed () const Returns the number of milliseconds that have elapsed since the last time start() or restart() was called. Note that the counter wraps to zero 24 hours after the last call to start() or restart. Note that the accuracy depends on the accuracy of the underlying operating system; not all systems provide 1-millisecond accuracy. Warning: If the system's clock setting has been changed since the last time start() or restart() was called, the result is undefined. This can happen when daylight savings time is turned on or off. See also start() and restart(). Название: Re: Аналог Delay Отправлено: pastor от Октябрь 31, 2009, 19:30 Выполни поиск по форуму на предмет "Delay"
Название: Re: Аналог Delay Отправлено: Примерный ученик от Октябрь 31, 2009, 22:22 Название: Re: Аналог Delay Отправлено: Alex Custov от Ноябрь 01, 2009, 02:41 Есть ли в QT3.3.8 аналог функции Delay(int msec). Нужно сделать паузу секунд на 20. Или только через QTimer? Можно использовать свой код. Код
Название: Re: Аналог Delay Отправлено: pastor от Ноябрь 01, 2009, 15:42 Название: Re: Аналог Delay Отправлено: Alex Custov от Ноябрь 01, 2009, 15:58 Ой, ошибся :) Выполни поиск по "sleep" Выполни тоже :) 3 результата, все в этой теме. Я тоже припоминаю похожие темы, но не могу найти ??? Название: Re: Аналог Delay Отправлено: Примерный ученик от Ноябрь 01, 2009, 16:28 нашел
http://www.prog.org.ru/topic_8200_0.html Название: Re: Аналог Delay Отправлено: shadone от Ноябрь 01, 2009, 16:55 В, общем, сделал это ооооочень плохой код который полность. загружает процессор без необходимости. Как минимум в тело цикла нужно добавить QThread::yieldCurrentThread().Код: QTime d=QTime::currentTime(); вообще есть хорошее правило - если в приложении нужен метод типа Sleep/Delay, то очень очень неправильно в дизайне приложения. Именно из этих соображений в Qt нет и не будет подобных функций. Название: Re: Аналог Delay Отправлено: Примерный ученик от Ноябрь 01, 2009, 17:14 А если
void QThread::sleep ( unsigned long secs ); в потоке? Название: Re: Аналог Delay Отправлено: Igors от Ноябрь 01, 2009, 18:03 Ну если нет в 3.3.8 - не помирать же :)
Код: void MySleep( unsigned int seconds ) Название: Re: Аналог Delay Отправлено: Примерный ученик от Ноябрь 01, 2009, 18:56 В, общем, сделал это ооооочень плохой код который полность. загружает процессор без необходимости. Как минимум в тело цикла нужно добавить QThread::yieldCurrentThread().Код: QTime d=QTime::currentTime(); вообще есть хорошее правило - если в приложении нужен метод типа Sleep/Delay, то очень очень неправильно в дизайне приложения. Именно из этих соображений в Qt нет и не будет подобных функций. Ты прав. sleep(x) не грузит проц, а мой вариант ужжжасно грузит. Спасибо за наводку... ;D Название: Re: Аналог Delay Отправлено: pastor от Ноябрь 02, 2009, 13:50 Выполни тоже :) 3 результата, все в этой теме. Ненужно ля-ля )) Выйди на глявную страницу форума, набери sleep, получишь 3 страницы результата поиска. Рассматривалось много вариантов реализации sleep. Название: Re: Аналог Delay Отправлено: SABROG от Ноябрь 05, 2009, 13:16 Локальный QEventLoop с QTimer::singleShot() не грузит проц.
Название: Re: Аналог Delay Отправлено: break от Ноябрь 11, 2009, 02:32 я не знаю есть ли это в вашей версии Qt но есть QTest::qSleep и QTest::qWait - одна из них не дает умереть пользовательскому интерфейсу
Название: Re: Аналог Delay Отправлено: Aleksey_Zh от Ноябрь 11, 2009, 09:02 Есть вариант самому наваять таймер в зависимости от тиков процессора а внутри делать процессивантс. Может быть это и коряво - но работает лучше всего. И точность ожидания можно выставить очень большую...
|