1

タイトルや軸のラベルなしでQWTを使用してプロットを描画しようとしています。タイトルを描画しないのは簡単なようです。タイトルに渡すだけではなく、すでに存在する場合は、空の文字列を指定するだけです(次のように)。

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

ただし、実際のラベル(axisScaleプロパティ内)はデフォルトで描画されます(xとyの両方で0から1000になります)。ただし、見た目を変更することはできますが、完全に削除することはできません。

では、軸のラベルやタイトルなしでqwtプロットを描画する方法はありますか?

4

3 に答える 3

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);

もっと良い方法があるかもしれませんが、これは私が考えることができる方法です。

于 2012-08-09T03:26:13.593 に答える
1

私は次のことを行いました:ui-> plot-> enableAxis(QwtPlot :: yLeft、false);

しかし、何が起こったのかというと、私の軸は消えましたが、私のプロットも細い水平の棒に押しつぶされています。

何が原因でしょうか?

于 2015-07-29T09:12:00.287 に答える
1

これを行うための良い方法を見つけました:

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

ScaleComponentsTicksおよびBackboneでも機能します。

于 2016-05-12T11:12:36.757 に答える