crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> sleep в main'е
flankerr
  опции профиля:
сообщение 8.6.2009, 15:34
Сообщение #1


Активный участник
***

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

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




Репутация:   0  


Тогда, BRE, может предложешь способ установить паузу в main() ?
Ну скажем мне надо до вызова главного окна в течении заданного времени находиться в паузе. Сейчас я делаю описанным мной выше способом, но может есть более "хорошее отношени к коду" ? ;) Буду благодарен за подсказку.

Сообщение отредактировал flankerr - 8.6.2009, 15:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 8.6.2009, 16:19
Сообщение #2


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(flankerr @ 8.6.2009, 16:34) *
Тогда, BRE, может предложешь способ установить паузу в main() ?
Ну скажем мне надо до вызова главного окна в течении заданного времени находиться в паузе. Сейчас я делаю описанным мной выше способом, но может есть более "хорошее отношени к коду" ? ;) Буду благодарен за подсказку.

sleep.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 8.6.2009, 16:43
Сообщение #3


Активный участник
***

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

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




Репутация:   0  


Цитата(BRE @ 8.6.2009, 17:19) *
sleep.
sleep етсь только у QThread.
Т.е. в main его юзать низя - нету там QThread.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 8.6.2009, 16:59
Сообщение #4


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

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Цитата(flankerr @ 8.6.2009, 17:43) *
sleep етсь только у QThread.
Наверное, имелось в виду, Sleep из windows.h
Цитата(flankerr @ 8.6.2009, 17:43) *
Т.е. в main его юзать низя - нету там QThread.
А что мешает сделать так
#include <QtGui/QApplication>
#include <QtGui/QDialog>
#include <QtCore/QThread>

struct MSleep : public QThread {
    static void pause(unsigned long msecs) {
        msleep(msecs);
    }
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QDialog dlg;

    MSleep::pause(3000);

    dlg.show();
    return a.exec();
}
;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 8.6.2009, 17:01
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


а собственно почему тогда не устраивает
qSleep() ?
qWait() ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 8.6.2009, 17:04
Сообщение #6


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

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Цитата(kwisp @ 8.6.2009, 18:01) *
а собственно почему тогда не устраивает
qSleep() ?
qWait() ?
Потому что это часть QTest module.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 8.6.2009, 17:07
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


igor_bogomolov,
что в нём страшного? в модуле QTest?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 8.6.2009, 17:11
Сообщение #8


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(flankerr @ 8.6.2009, 17:43) *
Цитата(BRE @ 8.6.2009, 17:19) *
sleep.
sleep етсь только у QThread.
Т.е. в main его юзать низя - нету там QThread.

Имелся ввиду системный sleep. Он усыпляет процесс и при этом не ест ресурсы.
Понимаешь, можно все делать как удобней, не задумавясь о расходе памяти, процессоре и тому подобных вещах. Так значительно проще, но при таком подходе всегда будет получаться MS Windows.
Никого не хотел обидеть. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 8.6.2009, 17:14
Сообщение #9


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

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


kwisp, Ничего. Талько зачем из-за одного метода тащить за собой весь этот модуль. Да и создан он для других целей.
Чем тебя тогда мой предыдущий пример не устраивает? Стандартными способами с сохранением кроссплатформа :)

Сообщение отредактировал igor_bogomolov - 8.6.2009, 17:16
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 8.6.2009, 17:29
Сообщение #10


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(igor_bogomolov @ 8.6.2009, 18:14) *
Чем тебя тогда мой предыдущий пример не устраивает? Стандартными способами с сохранением кроссплатформа

да я просто спросил. я не против решений.
в обоих случаях что то тащить надо.
вот код из исходника qthread_win.cpp
Раскрывающийся текст
void QThread::sleep(unsigned long secs)
{
    ::Sleep(secs * 1000);
}

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

void QThread::usleep(unsigned long usecs)
{
    ::Sleep((usecs / 1000) + 1);
}

однако если позырить в исходниках то QTest::qWait к примеру оч часто используется в WebKit`e к примеру:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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