我是学习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