Qwt日期时间轴

时间:2016-10-16 05:45:34

标签: qt datetime qwt

我从QwtScaleDraw继承类以显示日期时间轴:

class TimeScaleDraw: public QwtScaleDraw {
public:
TimeScaleDraw(const QDateTime &base) : baseDateTime(base) {
  setLabelRotation(0);
  setLabelAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
  setSpacing(20);
}
virtual QwtText label(double v) const {
  QDateTime dateTime;
  dateTime = dateTime.fromTime_t(v);
  return dateTime.toString("yyyy.MM.dd\nhh:mm:ss");
}
private:
QDateTime baseDateTime;
};

在主文件中我将其用作:

funPlot->setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw(QDateTime::currentDateTime()));

我希望在运行应用时看到当前的日期时间。可能吗?现在它以适当的比例显示为1970.01.00 00:00:00。

1 个答案:

答案 0 :(得分:0)

尝试打印出您传递的内容double v,它可能无法转换为QDateTime。您需要将这些秒数添加到baseDateTime

virtual QwtText label(double v) const {
  QDateTime dateTime = baseDateTime.addSecs(v);
  return dateTime.toString("yyyy.MM.dd\nhh:mm:ss");
}