仅作为思路参考
自定义时间轴主要分为一下几个部分:
- 动作图元:主要是用来显示动作片,例如下图中的 蓝色 或 浅蓝色 部分,每一个代表一个动作图元
- 事件图元:主要是用来显示事件类型,下图中的变道下的黑色背景为一个事件图元
- 事件文本图元:用来标注后面的背景为哪一种事件,和 事件图元成对出现,当移动进度条时可以一直保持在左侧显示
- 文件结束标志图元:主要用来标明,文件截止到那个时间
- 时间轴图元:主要显示当前时间刻度
- 当前时间位置图元:显示当前运行到那个时间位置了
自定义时间轴控件中主要有以下接口:
// 手动添加时间片
void addAction(const QString &qstrName, const QString &qstrFilePath, qlonglong qllStartTime, qlonglong qllEndTime = 0);
// 初始化时时间片
void addAction(const QString &qstrFilePath, const QString &qstrCategory, const QString &qstrName, qlonglong qllStartTime, qlonglong qllEndTime = 0);
// 添加事件和事件文字
void addEvent(const QString &qstrName);
// 获取当前进度条时间 并计算时间指针位置 和 更新手动时间片时间
void setCurTime(qlonglong qllCurTime = 0, const QString &qstrCurFilePath = "");
// 设置总时间长度并计算,并初始化界面相关数据
void setCountTimeLength();
// 保存每个文件的开始时间和结束时间
void setStartEndTime(int iIndex, const QString &qstrFilePath, qlonglong qllStartTime, qlonglong qllEndTime);
// 删除所有时间片
void delAllActionItem();
// 删除所有事件和事件文字 item
void delAllEventItem();
// 删除所有文件的结束标志item
void delAllFileEndItem();
// 清空所有的item
void clearItem();
// 初始化所有的item
void resetItem();
// 设置所有时间片item的使能(可用和不可用状态)
void setItemEnable(bool bIsEnable);
源码下载地址: 时间片源码