本系列预计实现
①刻度上方文字显示,
②时间轴拖动效果,
③时间轴刻度缩放,
④时间轴和其他控件联动显示,
⑤鼠标放置到时间轴,显示具体时间。
⑥通过定时器,实时更新时间轴
⑦时间轴上绘制时间片
完整代码可见GitHub - 754816/QT_TimeLine: qt时间轴实现效果
1、基础思路
使用QTimer创建一个定时器,设置为每0.5秒触发一次,获取当前的系统时间,并且显示到时间轴上,看起来就像是时间轴随着系统时间更新
2、代码实现
在头文件中,添加QTimer和全局变量m_Timer
#include <QTimer>
private:
QTimer* m_Timer;
在源文件中,初始化,并且添加绑定槽函数,当设定时间间隔到期后,执行槽函数内的代码。最后通过start函数,启动定时器。
m_Timer = new QTimer(this);
connect(m_Timer, &QTimer::timeout, this, [=](){
//获取当前系统时间
QDateTime curDateTime = QDateTime::currentDateTime();
//更新时间
ui->widget->SetDateTime(curDateTime);
});
//设置启动间隔为500毫秒,即0.5秒
m_Timer->start(500);
m_Timer->stop;
当需要停止的时候,调用stop函数即可,后续只需要不断的start(500)和stop即可定时触发效果。