代码之家  ›  专栏  ›  技术社区  ›  Leif Andersen

未绘制QWT绘图轴

  •  1
  • Leif Andersen  · 技术社区  · 12 年前

    我正在尝试使用QWT绘制一个没有任何标题或轴标签的绘图。不画标题似乎很容易,你所要做的就是不在标题中传递它,或者如果已经有了标题,只需给它一个空字符串(如下):

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

    但实际标签(在axisScale属性内)是默认绘制的(在x和y方向上从0到1000)。然而,即使我可以改变它的外观,我也不能完全去除它。

    那么,有没有办法在没有任何轴标签或标题的情况下绘制qwt图?

    3 回复  |  直到 12 年前
        1
  •  3
  •   Jason B    12 年前

    如果您不需要比例或标签,这将起作用:

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

    也许有更好的方法,但这是我能想到的。

        2
  •  1
  •   Cherple    10 年前

    我做了以下事情: ui->绘图->enableAxis(QwtPlot::yLeft,false);

    但发生的是,我的轴心消失了,但我的情节也被压扁成了一根细横杠。

    是什么原因造成的?

        3
  •  1
  •   Sebi    9 年前

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

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

    也适用于ScaleComponents Ticks和Backbone。