qwt缺省的x轴为double, 要换成时间有两种方法
1、参考《QWT--自定义坐标轴刻度值》https://blog.csdn.net/Mr_robot_strange/article/details/114626601
(1) 自定义坐标轴刻度,需要继承自QwtScaleDraw
,然后重写如下虚函数 virtual QwtText label(double v) const
(2) m_Qwt1->setAxisScaleDraw(QwtPlot::xBottom,new TimeScaleDraw());
:给xBottom设置自定义坐标轴
(3)qint64 timeVal = QDateTime::currentDateTime().toTime_t();
appendData(QString::number(moverNo),timeVal,dm); 插入时间戳
ui->plot->setAxisScale(QwtPlot::xBottom, dataset->getmsstart(), dataset->getmsstop(),1.0); 按自定义坐标轴定义的规则设置坐标轴范围
步长设为1秒。
坐标轴显示 :mm:ss
picker显示的是绝对时间
2、采样时间差的方法
class TimeScakeDrawR1: public QwtScaleDraw
{
public:
TimeScakeDrawR1(const QDateTime &base):
baseTime(base){
}
virtual QwtText label(double v) const
{
QDateTime upTime = baseTime.addSecs((int )v);
// return upTime.toString("yyyy-MM-dd\nhh:mm:ss");
return upTime.toString("hh:mm:ss");
}
private:
QDateTime baseTime;
};
qint64 timeVal = m_baseTime.msecsTo(QDateTime::currentDateTime())/1000; //秒差
显示 时:分:秒标签:qwt,baseTime,QT,曲线图,xBottom,坐标轴,const,QDateTime,自定义 From: https://www.cnblogs.com/xihong2014/p/17056914.html
picker 显示的时差值