我从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。
答案 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");
}