qwt setPen的重载不起作用

时间:2014-10-01 08:53:12

标签: c++ qt qwt

我想编译以下代码:

#include <QApplication>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_plot_grid.h>
#include <qwt_symbol.h>
#include <qwt_legend.h>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QwtPlot plot;
    plot.setTitle( "Plot Demo" );
    plot.setCanvasBackground( Qt::white );
    plot.setAxisScale( QwtPlot::yLeft, 0.0, 10.0);
    plot.insertLegend( new QwtLegend() );

    QwtPlotGrid *grid = new QwtPlotGrid();
    grid->attach( &plot );

    QwtPlotCurve *curve = new QwtPlotCurve();
    curve->setTitle( "Pixel Count" );
    curve->setPen( Qt::blue, 4 ),
    curve->setRenderHint( QwtPlotItem::RenderAntialiased, true );

    QwtSymbol *symbol = new QwtSymbol( QwtSymbol::Ellipse,
        QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 8, 8 ) );
    curve->setSymbol( symbol );

    QPolygonF points;
    points << QPointF( 0.0, 4.4 ) << QPointF( 1.0, 3.0 )
        << QPointF( 2.0, 4.5 ) << QPointF( 3.0, 6.8 )
        << QPointF( 4.0, 7.9 ) << QPointF( 5.0, 7.1 );
    curve->setSamples( points );

    curve->attach( &plot );

    plot.resize( 600, 400 );
    plot.show();

    return a.exec();
}

但我收到错误&#34;没有匹配的函数来调用QwtPlotCurve :: setPen(...)。候选人是&#34; QwtPlotCurve :: setPen(const QPen&amp;)&#34;。但是根据文档(http://qwt.sourceforge.net/class_qwt_plot_curve.html#ae00bd073a2bcf7c3c810d70af1f86750),这个函数应该重载,一方面是setPen(const QPen&),另一方面是setPen(const QColor & color, qreal width = 0.0, Qt::PenStyle style Qt::SolidLine),但是我的QT编译器不能识别这个重载变量。为什么?我已经在* .pro文件中输入了必要的变量。

编辑:我可以通过创建QPen并手动添加必要的功能来解决这个问题,但这应该只是一个临时修复......

0 个答案:

没有答案