版本:qwt 6.0.1
我尝试为Spectrum开发对数缩放。
我已经使用简单的线来启用缩放图谱-> setAxisScaleEngine(QwtPlot :: yLeft,new QwtLog10ScaleEngine);

问题:未绘制数据,因此图为空,编译器返回以下错误:“'QwtLog10ScaleEngine'之前的预期类型说明符”
任何帮助将不胜感激
这是我的代码:

class SpectrumPlot : public QWidget
{
Q_OBJECT
public:
PlotSpektrum();
private:
QHBoxLayout*    m_SpectrumLayout;
QwtPlot*        m_SpectrumPlot;
QwtPlotCurve*   m_SpectrumCurve;
QwtPlotMarker*  m_Marker;


};

SpectrumPlot::SpectrumPlot()
{
m_SpectrumLayout = new QHBoxLayout();
m_SpectrumPlot = new QwtPlot();
m_SpectrumCurve = new QwtPlotCurve();
QwPlotGrid* pGrid = new QwtPlotGrid();
QPen GridPen;
GridPen.setColor(Qt::green);
GridPen.setWidthF(0.7);
GridPen.setStyle(Qt::DashLine);
QPen SpectrumPen;
SpectrumPen.setColor(Qt::white);

pGrid->setRenderHint(QwtPlotItem::RenderAntialiased);
pGrid->setPen(GridPen);
pGrid->enableXMin(true);
pGrid->attach(m_SpectrumPlot);
m_SpectrumPlot->setTitle("Spectrum");
m_SpectrumPlot->setCanvasBackground(QBrush(Qt::black));
m_SpectrumPlot->setAutoDelete(true);
m_SpectrumPlot->setAxisTitle(QwtPlot::xBottom, "Frequency Hz");
m_SpectrumPlot->setAxisScale(QwtPlot::xBottom, 100, nNyquistFrequency);
m_SpectrumPlot->setAxisScale(QwtPlot::yLeft, 0, 150);
m_SpectrumPlot->setAxisScaleEngine(QwtPlot::xBottom, new QwtLog10ScaleEngine());
m_SpectrumLayout->addWidget(m_SpectrumPlot);

this->setLayout(m_SpectrumLayout);
}

最佳答案

我认为您应该使用:

new QwtLogScaleEngine(10)


QwtScaleEngine的手册未显示任何称为QwtLog10ScaleEngine的类。

09-07 00:58