Esimerkki, jossa liukupakĺkin arvo viedään Qwtplot:n arvoksi. Toimii qwt versiolla 6.0.1.
TARGET = SimulaattoriQwt TEMPLATE = app INCLUDEPATH += /home/koneauto/QtSDK/qwt-6.0.1/src //Kirjoita tähän oikea polku LIBS += -L/home/koneauto/QtSDK/qwt-6.0.1/lib -lqwt //Kirjoita tähän oikea polku SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #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 MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); 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(int Y); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); timer = new QTimer(this);//luo uusi ajastin ui->Slider->setRange(0,100); //ui->Slider->setRange(0,100,1,1); connect(ui->Slider, SIGNAL(valueChanged(int)),this, SLOT(PiirraPlotiin(int))); 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(int Y) { if((int)Y != EdellinenY) { x[indeksi]=(int)indeksi; y[indeksi]=Y; EkaKurvi->setSamples(x,y, indeksi);//laitetaan data käppyriin ui-> qwtPlot->replot(); //piirretään indeksi++; if(indeksi>9999)indeksi=0; EdellinenY=(int)Y; } }