QT6
QTimer和QElapsedTimer
QTime是软件定时器,QTime的主要功能是设置一个以毫秒为单位的定时周期,然后进行连续或单次定时
QElapsedTimer用于快速计算两个事件之间的间隔时间,是软件计时器
QTimer
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | interval | 超时间隔(毫秒) |
| 属性 | singleShot | 是否为单次定时器 |
| 属性 | active | 定时器是否激活 |
| 属性 | remainingTime | 剩余时间(毫秒) |
| 方法 | start() | 启动定时器 |
| 方法 | stop() | 停止定时器 |
| 方法 | setInterval(int) | 设置时间间隔 |
| 方法 | isActive() | 检查是否激活 |
| 信号 | timeout() | 超时信号 |
QElapsedTimer
| 类型 | 名称 | 说明 |
|---|---|---|
| 方法 | start() | 开始计时 |
| 方法 | restart() | 重新开始计时 |
| 方法 | elapsed() | 返回经过的毫秒数 |
| 方法 | hasExpired(qint64) | 检查是否超过指定时间 |
| 方法 | nsecsElapsed() | 返回经过的纳秒数 |
| 方法 | isValid() | 检查计时器是否有效 |
| 方法 | msecsSinceReference() | 自参考时间起的毫秒数 |
| 方法 | msecsTo(QElapsedTimer) | 到另一个计时器的毫秒数 |
| 静态方法 | clockType() | 返回使用的时钟类型 |
| 静态方法 | isMonotonic() | 检查时钟是否单调递增 |
代码测试
#include "widget.h"
#include "./ui_widget.h"
#include <QTimer>
#include <QElapsedTimer>
#include <QTime>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
m_timer = new QTimer(this);
m_elapsedTimer = new QElapsedTimer();
m_timer->stop();
m_timer->setTimerType(Qt::CoarseTimer);
// CoarseTimer设置为选中
ui->radioContinuity_3->setChecked(true);
m_elapsedTimer = new QElapsedTimer();
connect(m_timer,&QTimer::timeout,this,&Widget::do_time_timeout);
}
Widget::~Widget()
{
delete ui;
delete m_elapsedTimer;
}
void Widget::do_time_timeout()
{
QApplication::beep();
QTime curTime = QTime::currentTime();
ui

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



