2016-10-16 150 views
0

我繼承類從QwtScaleDraw顯示日期時間軸:QWT日期 - 時間軸

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

嘗試打印出您傳遞的信息爲double v,它可能只是不能轉換爲QDateTime。您需要將這些秒數添加到baseDateTime

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