2012-08-08 92 views
1

我想繪製一個使用QWT沒有任何標題或軸標籤的情節。不拉絲標題似乎很容易,你需要做的是通不過的標題,或者如果已經有一個,只是給它一個空字符串(像這樣):沒有繪製QWT繪圖軸

ui->plot->setAxisTitle(QwtPlot::xBottom, ""); 
ui->plot->setAxisTitle(QwtPlot::yLeft, ""); 

但實際標籤(在axisScale屬性中)是默認繪製的(在x和y中都從0到1000)。不過,儘管我可以改變它的外觀,但我無法完全刪除它。

那麼有什麼辦法可以繪製一個沒有任何軸標籤或標題的qwt繪圖?

回答

3

如果你不希望規模或標籤,這將工作:

ui->plot->enableAxis(QwtPlot::xBottom, false); 
ui->plot->enableAxis(QwtPlot::yLeft, false); 

如果你想用沒有標籤,以顯示刻度,你可以實現自己的QwtScaleDraw對象,返回一個空QwtText對象的所有標籤:

class MyScaleDraw : public QwtScaleDraw 
{ 
public: 
    MyScaleDraw() : QwtScaleDraw() { } 
    virtual ~MyScaleDraw() { } 
    virtual QwtText label(double) const 
    { 
     return QwtText(); 
    } 
}; 

//... 

ui->plot->setAxisScaleDraw(Qwt::xBottom, new MyScaleDraw); 
ui->plot->setAxisScaleDraw(Qwt::yLeft, new MyScaleDraw); 

可能有更好的辦法,但這是我能想到的。

+0

我得到:使用不完整類'class QwtScaleDraw' – SamuelNLP 2013-02-10 01:33:02

+1

嘗試在文件頂部添加'#include「qwt_scale_draw.h」'。 – 2013-02-10 03:02:01

1

我做了以下操作: ui-> plot-> enableAxis(QwtPlot :: yLeft,false);

但是,發生了什麼事是我的軸消失了,但我的情節也擠成一個薄的單槓。

這是什麼原因造成的?

0

只是找到了一個不錯的方式來做到這一點:

ui->plot->axisScaleDraw(QwtPlot::xBottom)->enableComponent(QwtAbstractScaleDraw::ScaleComponent::Labels, false); 

與ScaleComponents蜱和骨幹也有效。