• 9023阅读
  • 8回复

如何在Consol程序主线程中sleep几秒? [复制链接]

上一主题 下一主题
离线zhongzhu
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-10

很简答的consol程序, 想在里面sleep 5秒。直接调用Qthread的sleep不行,是protected。这么简单的程序,我又不想专门搞个类来继承QThread。有别的方法在主线程理实现sleep吗?


#include <QtCore/QCoreApplication>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    //如何sleep 5 秒?
  //thread()->sleep(2);   //不行, `static void QThread::sleep(long unsigned int)' is protected

    
    return app.exec();
}
离线dbzhang800

只看该作者 1楼 发表于: 2009-08-10
系统会提供sleep函数,请根据你的所用的编译环境选择。
离线zhongzhu

只看该作者 2楼 发表于: 2009-08-10
谢谢你的回答,Qt是否提供一个这样的函数?如果有就方便多了,要不然还要根据不同的系统调不同的函数。
离线dbzhang800

只看该作者 3楼 发表于: 2009-08-10
Qt 只有线程中提供sleep函数,因为主线程(GUI线程)中不能用sleep函数,所以没有这个函数对大家也不会产生什么影响
离线zhongzhu

只看该作者 4楼 发表于: 2009-08-11
谢谢!
离线yj_yulin

只看该作者 5楼 发表于: 2009-08-11
试试void QTest::qSleep ( int ms )
离线swift19221
只看该作者 6楼 发表于: 2011-03-23
主线程中能用sleep函数(与平台相关)吗?无论是console还是GUI?
离线bufanlin
只看该作者 7楼 发表于: 2011-03-23
有2种方法:第一个这个需要如果要用QT一定写个新类中继承这个QThread,然后内部函数有sleep;
第二种如果单纯调用sleep();需要#include<windows.h> 然后写 Sleep(2);就可以了主意S是大写就可以了;
离线ppdayz

只看该作者 8楼 发表于: 2011-03-24
回 6楼(swift19221) 的帖子
这里有个帖子,让Qt程序等待/睡眠的正确方法,可以去看看
http://www.cuteqt.com/blog/?tag=qwait
快速回复
限100 字节
 
上一个 下一个