linux+qt+定时精度,Qt QTimer测试定时精度
調(diào)試信息輸出窗口可以查看超時(shí)誤差
dialog.h文件
#ifndef DIALOG_H
#define DIALOG_H
#include
#include
namespace Ui {
class Dialog;
}
class QTimer;
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
public slots:
void slotOneSec();
private:
Ui::Dialog *ui;
QDateTime m_time;
QTimer *m_oneSecTimer;
int num;
};
#endif // DIALOG_H
dialog.cpp文件
#include "dialog.h"
#include "ui_dialog.h"
#include
#include
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
num = 0;
m_oneSecTimer = new QTimer();
connect(m_oneSecTimer, SIGNAL(timeout()), this, SLOT(slotOneSec()));
m_time = QDateTime::currentDateTime();
m_oneSecTimer->start(1000);
ui->myTime->setText(m_time.toString("hh:mm:ss"));
ui->computerTime->setText(QDateTime::currentDateTime().toString("hh:mm:ss"));
}
Dialog::~Dialog()
{
delete m_oneSecTimer;
delete ui;
}
void Dialog::slotOneSec()
{
m_time = m_time.addSecs(1);
ui->myTime->setText(m_time.toString("hh:mm:ss"));
ui->computerTime->setText(QDateTime::currentDateTime().toString("hh:mm:ss"));
//如果兩次定時(shí)間隔大于10秒,次數(shù)就會(huì)+1
qDebug()<
if(abs(m_time.toMSecsSinceEpoch() - QDateTime::currentDateTime().toMSecsSinceEpoch()) > 10000)
{
num++;
}
ui->exception->setText(QString::number(num));
//校準(zhǔn)事件
m_time = QDateTime::currentDateTime();
}
效果圖
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的linux+qt+定时精度,Qt QTimer测试定时精度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字节序、位序
- 下一篇: 学习linux/unix编程方法的建议[