Qt如何实现简单的延时
void KeyEvent::paintEvent(QPaintEvent *)
{
qDebug() << "will_touch";
QPainter painter;
painter.begin(this);
painter.drawPixmap(QPoint(0, 0), *pix);
painter.end();
qDebug() << "touch";
}
上面这段程序中,我希望在qDebug()<<"will_touch"执行之后,停止3秒观察运行状态,那么只需要在qDebug()<<"will_touch"的下面加上一段小代码:
QEventLoop eventloop;
QTimer::singleShot(3000, &eventloop, SLOT(quit()));//3000表示3000ms,即3秒,可根据实际情况修改,其他的不用变
eventloop.exec();
最后的代码段为:
void KeyEvent::paintEvent(QPaintEvent *)
{
qDebug() << "will_touch";
QEventLoop eventloop;
QTimer::singleShot(3000, &eventloop, SLOT(quit()));
eventloop.exec();
QPainter painter;
painter.begin(this);
painter.drawPixmap(QPoint(0, 0), *pix);
painter.end();
qDebug() << "touch";
}

浙公网安备 33010602011771号