Qt不像VC++的win32/MFC编程那样,提供了现成的sleep函数可供调用。Qt把sleep函数封装在QThread类中。子线程可以调用sleep函数。但是如果用户想在主线程实现延时功能,该怎么办呢?方法是自定义sleep延时函数。通过QDateTime来实现时间差。
#include <QDateTime>
void MainWindow::sleep(int msec)//自定义Qt延时函数,单位毫秒
{
QDateTime last = QDateTime::currentDateTime();
QDateTime now;
while (1)
{
now = QDateTime::currentDateTime();
if (last.msecsTo(now) >= msec)
{
break;
}
}
}