Qt-Qt中让程序休眠的方法
Qt中并没有提供跨平台的sleep函数。只能调用系统的sleep。请问还有别的什么好的方法让Qt程序sleep么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Qt中并没有提供跨平台的sleep函数。只能调用系统的sleep。请问还有别的什么好的方法让Qt程序sleep么?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
对于平台相关的系统函数的调用,即使是Qt来提供,Qt也是会先判断当前的系统的。
Qt 定义了很多宏来判断不同的操作系统,比如:
Q_OS_LINUX // Defined on Linux.
Q_OS_UNIX // Defined on Any UNIX BSD/SYSV system.
Q_OS_WIN32 // Defined on all supported versions of Windows.
。。。
我们在写跨平台的程序时,如果Qt没有提供的系统调用,那么我们应该自己判断系统环境,根据不同的系统调用不同的系统函数。
可以考虑使用QTime
这种死循环也是一种常见错误用法。但改成正确的还是比较简单的:
不停地处理事件,以使得程序保持响应。
Qt4.7引入的新的类QElapsedTimer,和QTime相比,它提供了更快的计算 elapsed 时间的方法。
使用上面几个函数最大的好处就是在Sleep的时候也可以保持界面的响应。
当然,可以通过宏定制自己的sleep函数。
QTest 模块中的函数很简单(windows下调用Sleep,其他平台调用 nanosleep):
参考链接:如何让 Qt 的程序使用 Sleep