You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.8 KiB
70 lines
1.8 KiB
|
|
#include <math.h>
|
|
#include <qapplication.h>
|
|
#include <qmainwindow.h>
|
|
#include <qmotifplusstyle.h>
|
|
|
|
/** see ../widgets dir */
|
|
#include "qsplotview.h"
|
|
//#include "qsworkbook.h"
|
|
#include "qsaxes2d.h"
|
|
#include "qscurve.h"
|
|
#include "qsclegend.h"
|
|
|
|
// implementation of QSMatrix
|
|
class Curve1 : public QSMatrix {
|
|
public:
|
|
Curve1() {}
|
|
~Curve1() {}
|
|
int cols() const { return 1; }
|
|
int rows() const { return 100; }
|
|
double value( int row, int col ) { return sin( row/10.0 )*100.0; }
|
|
};
|
|
|
|
|
|
int main( int argc, char ** argv ) {
|
|
QApplication a( argc, argv );
|
|
// QApplication::setStyle( new QMotifPlusStyle() );
|
|
|
|
QMainWindow *mw = new QMainWindow();
|
|
mw->setCaption( "plot2d demo" );
|
|
|
|
// create a workbook with a one empty page.
|
|
QSWorkbook *doc = new QSWorkbook( mw );
|
|
doc->clear();
|
|
doc->pageAdd( new QSPage() );
|
|
|
|
// create the view and set it as main widget in app window
|
|
QSPlotView *view = new QSPlotView( mw );
|
|
view->setFullPage( true );
|
|
mw->setCentralWidget( view );
|
|
|
|
// set workbook to be displayed
|
|
view->setWorkbook( doc );
|
|
|
|
// create axes object
|
|
QSAxes2D *axes = new QSAxes2D();
|
|
// axes doesn't inherit QSCObject ( problems with multiple inheritance )
|
|
// so we must use axes->shadowObject() instead
|
|
doc->page(0)->objects()->add( axes->shadowObject() );
|
|
|
|
// create dataset
|
|
QSCurve *c = new QSCurve( axes );
|
|
// set data to be displayed
|
|
c->setMatrix( QSCurve::YVector, new Curve1() );
|
|
c->setTitle( "Sample" );
|
|
axes->plotAdd( c );
|
|
|
|
// setting attributes
|
|
QSGLine l( QSGLine::Dash );
|
|
l.color.set( 255, 0, 0 );
|
|
c->setLine( QSCurve::BaseLine, l );
|
|
|
|
// adding legend
|
|
doc->page(0)->objects()->add( new QSCLegend(axes) );
|
|
|
|
mw->show();
|
|
a.connect( &a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()) );
|
|
return a.exec();
|
|
}
|