void QwtPlotAbstractCanvas::drawCanvas( QPainter *painter ) { QWidget *w = canvasWidget(); painter->save(); if ( !d_data->styleSheet.borderPath.isEmpty() ) { painter->setClipPath( d_data->styleSheet.borderPath, Qt::IntersectClip ); } else { if ( borderRadius() > 0.0 ) { const QRect frameRect = w->property( "frameRect" ).toRect(); painter->setClipPath( borderPath2( frameRect ), Qt::IntersectClip ); } else { painter->setClipRect( w->contentsRect(), Qt::IntersectClip ); } } QwtPlot *plot = qobject_cast< QwtPlot *>( w->parent() ); if ( plot ) plot->drawCanvas( painter ); painter->restore(); }
/*! Draw the plot items \param painter Painter \sa QwtPlot::drawCanvas() */ void QwtPlotGLCanvas::drawItems( QPainter *painter ) { painter->save(); painter->setClipRect( contentsRect(), Qt::IntersectClip ); QwtPlot *plot = qobject_cast< QwtPlot *>( parent() ); if ( plot ) plot->drawCanvas( painter ); painter->restore(); }
virtual void paintEvent( QPaintEvent *event ) { QPainter painter( this ); painter.setClipRegion( event->region() ); QwtPlot *plot = qobject_cast< QwtPlot *>( parent() ); if ( plot ) plot->drawCanvas( &painter ); painter.setPen( palette().foreground().color() ); painter.drawRect( rect().adjusted( 0, 0, -1, -1 ) ); }