本系列预计实现
①刻度上方文字显示,
②时间轴拖动效果,
③时间轴刻度缩放,
④时间轴和其他控件联动显示,
⑤鼠标放置到时间轴,显示具体时间。
⑥通过定时器,实时更新时间轴
⑦时间轴上绘制时间片
完整代码可见GitHub - 754816/QT_TimeLine: qt时间轴实现效果
1、基础思路
使用QPainter函数,根据时间片的起止时间,绘制矩形框。首先在外部类,获取对应的时间片,信息,通常为一个开始时间(QDateTime startTime)和一个结束时间(QDateTime endTime)为一组时间片,需要校验结束时间要比开始时间大才为正确的时间片,将时间片保存在容器(QVector)中。然后在绘制将单个时间片的开始时间,结束时间,分别转换为时间轴上的起止坐标,再构造成矩形框。最后调用painter.drawRects(vector);完成时间片的绘制
如图所示,这里绘制了今日08:00:00-10:35:00等四段时间片。
2、代码实现
首先构造时间片