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

I did the following: ui->plot->enableAxis(QwtPlot::yLeft, false);

But what happened is that my axis disappeared, but my plot is also squished into a thin horizontal bar.

What could cause this?

于 2015-07-29T09:12:00.287 回答
1

刚刚找到了一个很好的方法:

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

也适用于 ScaleComponents Ticks 和 Backbone。

于 2016-05-12T11:12:36.757 回答