• 7945阅读
  • 11回复

[提问]qt 时延问题 [复制链接]

上一主题 下一主题
离线yong27
 
只看楼主 倒序阅读 楼主  发表于: 2011-03-09
我想问问怎么让程序时延10ms,也不一定要很精确
怎么实现的
离线uidab

只看该作者 1楼 发表于: 2011-03-09
qtimer不行吗??
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线morriszy

只看该作者 2楼 发表于: 2011-03-09
Sleep(10);
VS2010+Qt4.7.0
离线yong27
只看该作者 3楼 发表于: 2011-03-09
qtimer 怎么实现,具体点
离线flybabys

只看该作者 4楼 发表于: 2011-03-09
回 3楼(yong27) 的帖子
   初始化时候:
    timerdly =10;
    //设置读取计时器z
    timer = new QTimer(this);
相应槽函数
    connect(timer, SIGNAL(timeout()), this, SLOT(What_want_you_do()));
程序中:
    timer->start(timerdly);   // 启动该定时器
    timer->stop();                  //停止该定时器

解释:定义一个新的定时器timer,在你需要处理延时时候启动定时器,定时器到时间后自动转入相应的槽函数,在槽函数中,你先进行timer->stop();的处理,然后做你的事情

我是这么干的,希望楼下高手指示!
离线yong27
只看该作者 5楼 发表于: 2011-03-09
回 4楼(flybabys) 的帖子
非常感谢楼上的写这么多。定时器触发的函数每次做的事都一样的。
我现在问题是这样的。
for(i = 0; i < 100;i ++){
   我想做的事,(每次要做的根i值有关);
  时延10ms;
}
定时器怎么做。
离线alexltr

只看该作者 6楼 发表于: 2011-03-09
for(i = 0; i < 100;i ++){
     我想做的事,(每次要做的根i值有关);
      sleep(10);
}

void sleep(int mscn)
{
    QTime targetTime=QTime::currentTime().addMSecs(mscn);
    while(QTime::currentTime()<targetTime)
    {
          QCoreApplication::processEvents(QEventLoop::AllEvents,100);
    }
}
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线yong27
只看该作者 7楼 发表于: 2011-03-09
回 6楼(alexltr) 的帖子
编译的时候出现这个错误,需要什么头文件
setting.cpp:54: error: 'QCoreApplication' has not been declared
setting.cpp:54: error: 'QEventLoop' has not been declared
离线alexltr

只看该作者 8楼 发表于: 2011-03-09
我用的是#include<QtGui>

具体你在HELP里搜索一下吧。
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线dwhome

只看该作者 9楼 发表于: 2011-03-10
回 6楼(alexltr) 的帖子
学习了

但是你的100 > mscn了
可能要防护
离线yong27
只看该作者 10楼 发表于: 2011-03-10
回 8楼(alexltr) 的帖子
qtgui.h: No such file or directory
我用的是qtopia2.2.0
感谢各位了!
离线jdwx

只看该作者 11楼 发表于: 2011-03-10
从QThread派生一个类,QThread包含Sleep(私有)函数,自己想办法实现Sleep()。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个