如何在QT中实现相同功能的睡眠

  • 本文关键字:功能 实现 QT qt sleep
  • 更新时间 :
  • 英文 :


我是学习QT的学生。我想在相同的功能范围内睡觉(延迟(,但我不能像我想的那样睡觉。

void test(){
cardTurning(i, 0);
// I want to sleep for 3 seconds at here
cardTurning(i, 1);
}

我该怎么睡?

我已经使用了QThread::sleep(3(;,但它使睡眠同时具有两种功能。

我想在cardTurning(I,0(后睡三秒,然后工作cardTurning。

谢谢。

如果您要使用睡眠功能,您将睡眠整个程序。在这种类型的延迟下,您可以使用QTimer::singleShot函数,它在您的间隔后只调用一次,而不会休眠整个系统。它将间隔作为ms

你可以在下面看到一个基本的例子;

#include <QCoreApplication>
#include <QDebug>
#include <QTimer>
void print1(int x,int y){
qDebug()<<"value = "<<x<<" "<<y;
}
void Test(){
print1(3,2);
QTimer::singleShot(3000,[](){
print1(4,5);
});
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Test();
print1(10,10);
return a.exec();
}

预期产出为
值=3 2
值=10 10
价值=4 5

最新更新