mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-15 18:13:33 -06:00
101 lines
2.2 KiB
C++
101 lines
2.2 KiB
C++
#include <qapplication.h>
|
|
#include <qpainterpath.h>
|
|
#include <qwt_plot.h>
|
|
#include <qwt_legend.h>
|
|
#include <qwt_point_data.h>
|
|
#include <qwt_plot_canvas.h>
|
|
#include <qwt_plot_panner.h>
|
|
#include <qwt_plot_magnifier.h>
|
|
#include <qwt_plot_shapeitem.h>
|
|
#include <qwt_scale_engine.h>
|
|
|
|
class Plot : public QwtPlot
|
|
{
|
|
public:
|
|
Plot( QWidget *parent = NULL );
|
|
|
|
private:
|
|
void populate();
|
|
};
|
|
|
|
|
|
Plot::Plot( QWidget *parent ):
|
|
QwtPlot( parent )
|
|
{
|
|
setPalette( QColor( 60, 60, 60 ) );
|
|
canvas()->setPalette( Qt::white );
|
|
|
|
// panning with the left mouse button
|
|
( void ) new QwtPlotPanner( canvas() );
|
|
|
|
// zoom in/out with the wheel
|
|
( void ) new QwtPlotMagnifier( canvas() );
|
|
|
|
setTitle( "Shapes" );
|
|
insertLegend( new QwtLegend(), QwtPlot::RightLegend );
|
|
|
|
// axes
|
|
setAxisTitle( xBottom, "x -->" );
|
|
setAxisTitle( yLeft, "y -->" );
|
|
#if 0
|
|
setAxisScaleEngine( xBottom, new QwtLog10ScaleEngine );
|
|
setAxisScaleEngine( yLeft, new QwtLog10ScaleEngine );
|
|
#endif
|
|
|
|
populate();
|
|
}
|
|
|
|
void Plot::populate()
|
|
{
|
|
const double d = 900.0;
|
|
const QRectF rect( 1.0, 1.0, d, d );
|
|
|
|
QPainterPath path;
|
|
//path.setFillRule( Qt::WindingFill );
|
|
path.addEllipse( rect );
|
|
|
|
const QRectF rect2 = rect.adjusted( 0.2 * d, 0.3 * d, -0.22 * d, 1.5 * d );
|
|
path.addEllipse( rect2 );
|
|
|
|
#if 0
|
|
QFont font;
|
|
font.setPointSizeF( 200 );
|
|
QPainterPath textPath;
|
|
textPath.addText( rect.center(), font, "Seppi" );
|
|
|
|
QTransform transform;
|
|
transform.translate( rect.center().x() - 600, rect.center().y() + 50 );
|
|
transform.rotate( 180.0, Qt::XAxis );
|
|
|
|
textPath = transform.map( textPath );
|
|
|
|
path.addPath( textPath );
|
|
#endif
|
|
|
|
QwtPlotShapeItem *item = new QwtPlotShapeItem( "Shape" );
|
|
item->setItemAttribute( QwtPlotItem::Legend, true );
|
|
item->setRenderHint( QwtPlotItem::RenderAntialiased, true );
|
|
#if 1
|
|
item->setRenderTolerance( 1.0 );
|
|
#endif
|
|
item->setShape( path );
|
|
item->setPen( Qt::yellow );
|
|
|
|
QColor c = Qt::darkRed;
|
|
c.setAlpha( 100 );
|
|
item->setBrush( c );
|
|
|
|
item->attach( this );
|
|
}
|
|
|
|
int main( int argc, char **argv )
|
|
{
|
|
QApplication a( argc, argv );
|
|
|
|
Plot plot;
|
|
plot.resize( 600, 400 );
|
|
plot.show();
|
|
|
|
return a.exec();
|
|
}
|