<pre name="code" class="cpp">鼠标滚轮放大缩小: QwtPlotMagnifier *PM = new QwtPlotMagnifier( ui->qwtPlot->canvas() ); 鼠标左键拖动波形: QwtPlotPanner *PQ= new QwtPlotPanner( ui->qwtPlot->canvas() ); 鼠标左键选择区域放大:(右键还原) QwtPlotZoomer* zoomer = new QwtPlotZoomer( ui->qwtPlot->canvas() ); zoomer->setRubberBandPen( QColor( Qt::black ) ); zoomer->setTrackerPen( QColor( Qt::black ) ); zoomer->setMousePattern(QwtEventPattern::MouseSelect2,Qt::RightButton, Qt::ControlModifier ); zoomer->setMousePattern(QwtEventPattern::MouseSelect3,Qt::RightButton ); 设置X轴下面标识: ui->qwtPlot->setAxisTitle(QwtPlot::xBottom, "x -->" ); 设置X轴取值范围: ui->qwtPlot->setAxisScale(QwtPlot::xBottom, 0.0, 30.0); 设置Y轴左边标识(竖着显示): ui->qwtPlot->setAxisTitle(QwtPlot::yLeft, "y -->"); 设置Y轴取值范围: ui->qwtPlot->setAxisScale(QwtPlot::yLeft, -1.0, 1.0); 创建一个sin()曲线: QwtPlotCurve *cSin = new QwtPlotCurve("y = sin(x)"); cSin->setRenderHint(QwtPlotItem::RenderAntialiased); cSin->setLegendAttribute(QwtPlotCurve::LegendShowLine, true); cSin->setPen(QPen(Qt::blue)); cSin->attach(ui->qwtPlot); cSin->setData(new FunctionData(::sin)); 其中FunctionData为: class FunctionData: public QwtSyntheticPointData { public: FunctionData(double(*y)(double)): QwtSyntheticPointData(100), d_y(y) { } virtual double y(double x) const { return d_y(x); } private: double(*d_y)(double); }; class FunctionData: public QwtSyntheticPointData { public: FunctionData(double(*y)(double)): QwtSyntheticPointData(100), d_y(y) { } virtual double y(double x) const { return d_y(x); } private: double(*d_y)(double); }; 创建波形标识:(Y=0) QwtPlotMarker *mY = new QwtPlotMarker(); mY->setLabel(QString::fromLatin1("y = 0")); mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop); mY->setLineStyle(QwtPlotMarker::HLine); mY->setYValue(0.0); mY->attach(ui->qwtPlot); QwtPlotMarker *mY = new QwtPlotMarker(); mY->setLabel(QString::fromLatin1("y = 0")); mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop); mY->setLineStyle(QwtPlotMarker::HLine); mY->setYValue(0.0); mY->attach(ui->qwtPlot); 创建波形标识:(X=PI/2) QwtPlotMarker *mX = new QwtPlotMarker(); mX->setLabel(QString::fromLatin1("x = PI/2")); mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom); mX->setLabelOrientation(Qt::Vertical); mX->setLineStyle(QwtPlotMarker::VLine); mX->setLinePen(QPen(Qt::black, 1, Qt::DashDotDotLine)); mX->setXValue(M_PI/2); mX->attach(ui->qwtPlot); QwtPlotMarker *mX = new QwtPlotMarker(); mX->setLabel(QString::fromLatin1("x = PI/2")); mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom); mX->setLabelOrientation(Qt::Vertical); mX->setLineStyle(QwtPlotMarker::VLine); mX->setLinePen(QPen(Qt::black, 1, Qt::DashDotDotLine)); mX->setXValue(M_PI/2); mX->attach(ui->qwtPlot); 设置qwtPlot的画布:(圆角矩形) ui->qwtPlot->canvas()->setLineWidth( 1 ); ui->qwtPlot->canvas()->setFrameStyle( QFrame::Box | QFrame::Plain ); ui->qwtPlot->canvas()->setBorderRadius( 15 ); ui->qwtPlot->canvas()->setLineWidth( 1 ); ui->qwtPlot->canvas()->setFrameStyle( QFrame::Box | QFrame::Plain ); ui->qwtPlot->canvas()->setBorderRadius( 15 ); 设置qwtPlot的画布:(白色填充) QPalette canvasPalette( Qt::white ); canvasPalette.setColor( QPalette::Foreground, QColor( 133, 190, 232 ) ); ui->qwtPlot->canvas()->setPalette( canvasPalette ); QPalette canvasPalette( Qt::white ); canvasPalette.setColor( QPalette::Foreground, QColor( 133, 190, 232 ) ); ui->qwtPlot->canvas()->setPalette( canvasPalette ); 设置整个界面的颜色: QPalette pal = palette(); const QColor buttonColor = pal.color( QPalette::Button ); QLinearGradient gradient( 0, 0, 0, 1 ); gradient.setCoordinateMode( QGradient::StretchToDeviceMode ); gradient.setColorAt( 0.0, Qt::white ); gradient.setColorAt( 0.7, buttonColor ); gradient.setColorAt( 1.0, buttonColor ); pal.setBrush( QPalette::Window, gradient ); setPalette( pal ); QPalette pal = palette(); const QColor buttonColor = pal.color( QPalette::Button ); QLinearGradient gradient( 0, 0, 0, 1 ); gradient.setCoordinateMode( QGradient::StretchToDeviceMode ); gradient.setColorAt( 0.0, Qt::white ); gradient.setColorAt( 0.7, buttonColor ); gradient.setColorAt( 1.0, buttonColor ); pal.setBrush( QPalette::Window, gradient ); setPalette( pal );
QWT类的一些使用方法
最新推荐文章于 2023-11-01 21:09:15 发布