Esimerkki, jossa liukupakĺkin arvo viedään Qwtplot:n arvoksi
TARGET = SimulaattoriQwt TEMPLATE = app INCLUDEPATH += /usr/include/qwt-qt4 LIBS += -L/usr/lib -lqwt-qt4 SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindowClass) { ui->setupUi(this); timer = new QTimer(this);//luo uusi ajastin ui->Slider->setRange(0,100,1,1); connect(ui->Slider, SIGNAL(valueChanged(double)),this, SLOT(PiirraPlotiin(double))); Kurvi.setText("Eka kuva"); Y_Akseli.setText("Y-akseli"); X_Akseli.setText("X-akseli"); EkaKurvi = new QwtPlotCurve();//new luo kekoon (heap) uuden muuttujan tilavarauksen EkaKurvi->setPen(QPen(Qt::red)); EkaKurvi->attach(ui->qwtPlot); ui->qwtPlot->setAxisTitle(0,Y_Akseli); ui->qwtPlot->setAxisTitle(2,X_Akseli); indeksi=0; EdellinenY=0; } MainWindow::~MainWindow() { delete ui; } void MainWindow::PiirraPlotiin(double Y) { if((int)Y != EdellinenY) { x[indeksi]=(double)indeksi; y[indeksi]=Y; EkaKurvi->setData(x, y, indeksi);//laitetaan data käppyriin ui-> qwtPlot->replot(); //piirretään indeksi++; if(indeksi>9999)indeksi=0; EdellinenY=(int)Y; } }
#include <qwt_legend.h> #include <qwt_scale_draw.h> #include <qwt_math.h> #include <qwt_plot_item.h> #include <qwt_plot_curve.h> #include <qwt_text.h> #include <QTimer> namespace Ui { class MainWindowClass; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindowClass *ui; QwtPlot *EkaPlotti; QwtPlotCurve *EkaKurvi; QwtText Kurvi; QwtText Y_Akseli; QwtText X_Akseli; QTimer *timer;//osoitin ajastimeen int Arvo; int indeksi; int EdellinenY; double x[10000],y[10000]; private slots: void PiirraPlotiin(double Y); void update(); }; #endif // MAINWINDOW_H