找回密码
 立即注册
收起左侧

QT 中延时方面的问题

5
回复
8311
查看
[复制链接]
累计签到:75 天
连续签到:1 天
来源: 2013-11-28 11:16:38 显示全部楼层 |阅读模式
2Qter豆
大家好,
              有个问题想请教大家,我用QT 自己写的类,这个类没有继承QT中的类
            
              我想在类中写一些延时函数,一般怎么写,直接读取系统时间吗 ,要是读取系统时间,我还得调用QT系统函数
              这样我的类用继承QT中的类吗 ,还是直接包含头文件。

               还有一个问题,就是我类中函数中有while循环,我想到几秒后自动跳出,这个函数应该怎么写  。

               谢谢回复!!!

最佳答案

查看完整内容

可以用windows里面 Sleep(); 你也可以用QTimer 我现在用的 static void mSleep(const qint64 &msecs) { QDateTime temTime = QDateTime::currentDateTime(); while(1) { QDateTime curTime = QDateTime::currentDateTime(); if(temTime.msecsTo(curTime) >= msecs) break; QCoreApplication::processEvents(); } } 当然 我在这里是每次去取时间来比较,是基于系统时间不会修 ...
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-11-28 11:16:39 显示全部楼层
可以用windows里面 Sleep();
你也可以用QTimer
我现在用的
static void mSleep(const qint64 &msecs)
{
    QDateTime temTime = QDateTime::currentDateTime();
    while(1)
    {
        QDateTime curTime = QDateTime::currentDateTime();
        if(temTime.msecsTo(curTime) >= msecs)
            break;
         QCoreApplication::processEvents();
    }
}
当然 我在这里是每次去取时间来比较,是基于系统时间不会修改状态下
回复

使用道具 举报

累计签到:75 天
连续签到:1 天
2013-11-28 13:30:27 显示全部楼层
a408815041 发表于 2013-11-28 12:42
可以用windows里面 Sleep();
你也可以用QTimer
我现在用的

Qt 能调用Windows 中的sleep 函数吗 ?

还有一个问题,我在while循环 ,怎样定时跳出 , 谢谢!!!
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-11-29 12:27:38 显示全部楼层
noway 发表于 2013-11-28 13:30
Qt 能调用Windows 中的sleep 函数吗 ?

还有一个问题,我在while循环 ,怎样定时跳出 , 谢谢!!! ...

很多种啊。
比如timer
bool sign = false;
while(!sign)
{
timer->start(500);
...
}
void timerEnd()
{
sign = true;
}
回复

使用道具 举报

累计签到:75 天
连续签到:1 天
2013-12-3 11:55:29 显示全部楼层
a408815041 发表于 2013-11-29 12:27
很多种啊。
比如timer
bool sign = false;

好的 ,谢谢 ,我试试!!!!!!!!!!!!!!!
回复

使用道具 举报

累计签到:75 天
连续签到:1 天
2013-12-13 13:09:28 显示全部楼层
a408815041 发表于 2013-11-28 12:42
可以用windows里面 Sleep();
你也可以用QTimer
我现在用的

我调试这段代码时 ,怎么出现不能往下运行的情况,我把Sleep延时设置很长时也会出现
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了