crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Sleep в Qt
deex
  опции профиля:
сообщение 7.2.2010, 20:06
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 45
Регистрация: 12.3.2009
Пользователь №: 608

Спасибо сказали: 0 раз(а)




Репутация:   0  


Подскажите пожалуйста, как правильно сделать задержку на N секунд в Qt?
Подобно Sleep(3000);

В гугле не нашёл ничего толкового.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 7.2.2010, 20:26
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


я когда то тоже искал, плюнул и просто использовал Sleep() :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.2.2010, 21:09
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(deex @ 7.2.2010, 23:06) *
Подскажите пожалуйста, как правильно сделать задержку на N секунд в Qt?
Подобно Sleep(3000);
как показывает практика, в главном потоке нет нужды в такой задержке. Используй таймер и его событе для продолжения работы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 15.6.2010, 18:29
Сообщение #4





Гости








    


#include <QtTest/QTest>

...

QTest::qSleep(3000);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 16.6.2010, 13:51
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 7.2.2010, 22:09) *
как показывает практика, в главном потоке нет нужды в такой задержке

Правильно.

Если надо можно так сделать:

QEventLoop loop; QTimer::singleShot(3000, &loop, SLOT(quit())); loop.exec();


или так

struct MyThread : public QThread { using QThread::msleep;};
...
MyThread::msleep(3000);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 22:58