{code}
#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
{code}
#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;
}
}
|