void QwtPlot::drawItems(QPainter *painter, const QRect &rect, const QwtScaleMap map[axisCnt], const QwtPlotPrintFilter &pfilter) const { const QwtPlotItemList& itmList = itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { QwtPlotItem *item = *it; if ( item && item->isVisible() ) { if ( !(pfilter.options() & QwtPlotPrintFilter::PrintGrid) && item->rtti() == QwtPlotItem::Rtti_PlotGrid ) { continue; } painter->save(); #if QT_VERSION >= 0x040000 painter->setRenderHint(QPainter::Antialiasing, item->testRenderHint(QwtPlotItem::RenderAntialiased) ); #endif item->draw(painter, map[item->xAxis()], map[item->yAxis()], rect); painter->restore(); } } }
void QwtPlot::drawItems( QPainter *painter, const QRectF &canvasRect, const QwtScaleMap maps[axisCnt] ) const { const QwtPlotItemList& itmList = itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { QwtPlotItem *item = *it; if ( item && item->isVisible() ) { painter->save(); painter->setRenderHint( QPainter::Antialiasing, item->testRenderHint( QwtPlotItem::RenderAntialiased ) ); painter->setRenderHint( QPainter::HighQualityAntialiasing, item->testRenderHint( QwtPlotItem::RenderAntialiased ) ); item->draw( painter, maps[item->xAxis()], maps[item->yAxis()], canvasRect ); painter->restore(); } } }
void Graph::initLegend() { QwtLegend *legend = new QwtLegend; legend->setDefaultItemMode(QwtLegendData::Checkable); insertLegend(legend, QwtPlot::BottomLegend); connect(legend, SIGNAL(checked(QVariant,bool,int)), SLOT(showCurve(QVariant,bool,int))); QwtPlotItemList l = this->itemList(QwtPlotItem::Rtti_PlotCurve); for(int i = 0; i < l.size(); ++i) { QwtPlotItem *curve = l[i]; QVariant info = itemToInfo(curve); QWidget *w = legend->legendWidget(info); if(w && w->inherits("QwtLegendLabel")) ((QwtLegendLabel*)w)->setChecked(curve->isVisible()); } }
void Editor::raiseItem( QwtPlotShapeItem *shapeItem ) { const QwtPlot *plot = this->plot(); if ( plot == NULL || shapeItem == NULL ) return; const QwtPlotItemList items = plot->itemList(); for ( int i = items.size() - 1; i >= 0; i-- ) { QwtPlotItem *item = items[ i ]; if ( shapeItem == item ) return; if ( item->isVisible() && item->rtti() == QwtPlotItem::Rtti_PlotShape ) { shapeItem->setZ( item->z() + 1 ); return; } } }
QwtPlotShapeItem* Editor::itemAt( const QPoint& pos ) const { const QwtPlot *plot = this->plot(); if ( plot == NULL ) return NULL; // translate pos into the plot coordinates double coords[ QwtPlot::axisCnt ]; coords[ QwtPlot::xBottom ] = plot->canvasMap( QwtPlot::xBottom ).invTransform( pos.x() ); coords[ QwtPlot::xTop ] = plot->canvasMap( QwtPlot::xTop ).invTransform( pos.x() ); coords[ QwtPlot::yLeft ] = plot->canvasMap( QwtPlot::yLeft ).invTransform( pos.y() ); coords[ QwtPlot::yRight ] = plot->canvasMap( QwtPlot::yRight ).invTransform( pos.y() ); QwtPlotItemList items = plot->itemList(); for ( int i = items.size() - 1; i >= 0; i-- ) { QwtPlotItem *item = items[ i ]; if ( item->isVisible() && item->rtti() == QwtPlotItem::Rtti_PlotShape ) { QwtPlotShapeItem *shapeItem = static_cast<QwtPlotShapeItem *>( item ); const QPointF p( coords[ item->xAxis() ], coords[ item->yAxis() ] ); if ( shapeItem->boundingRect().contains( p ) && shapeItem->shape().contains( p ) ) { return shapeItem; } } } return NULL; }
void QwtPlot::drawItems(QPainter *painter, const QRect &rect, const QwtArray<QwtScaleMap> &map, const QwtPlotPrintFilter &pfilter) const { painter->save(); const QwtPlotItemList& itmList = itemList(); for ( QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it ) { QwtPlotItem *item = *it; if ( item && item->isVisible() ) { if ( !(pfilter.options() & QwtPlotPrintFilter::PrintGrid) && item->rtti() == QwtPlotItem::Rtti_PlotGrid ) { continue; } #if QT_VERSION >= 0x040000 const QPaintEngine *pe = painter->device()->paintEngine(); if (pe->hasFeature(QPaintEngine::Antialiasing) ) { painter->setRenderHint(QPainter::Antialiasing, item->testRenderHint(QwtPlotItem::RenderAntialiased) ); } #endif item->draw(painter, map[item->xAxis()], map[item->yAxis()], rect); } } painter->restore(); }