2013年3月9日星期六
Qwt 筆記 - 更改 Qwt 圖表上軸線標示的顯示方式
QwtPlot 預設是將輸入的數值 (double 類型) 用 QLocale::system().toString() 來轉換為文字再繪畫出來 (參考 QwtAbstractScaleDraw::label 的說明)
若需要更改標示的顯示方式 (例如: 時間軸的顯示), 我們可以先建立一個承繼 QwtScaleDraw 的 class, 再重寫 label() 功能:
class TimeAxis : public QwtScaleDraw {
public:
explicit TimeAxis();
// override label function
QwtText label(double offset) const;
};
QwtText TimeAxis::label(double offset) const {
// starting time
QTime time(0, 0, 0);
time = time.addSecs(offset);
return QwtText(time.toString("hh:mm:ss"));
}
然後用 QwtPlot 的 setAxisScaleDraw() 功能來設定新的軸:
LogPlot::LogPlot(QWidget *parent) : QwtPlot(parent)
{
this->pTime_axis = new TimeAxis();
this->setAxisScaleDraw(xBottom, this->pTime_axis);
}
訂閱:
發佈留言 (Atom)
沒有留言:
發佈留言