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";
}

 

posted @ 2019-08-08 18:27  昨夜昙花  阅读(110)  评论(0)    收藏  举报