Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Esimerkki,

...

jossa

...

liukupakĺkin

...

arvo

...

viedään

...

Qwtplot:n

...

arvoksi

{
Code Block
}
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


{
Code Block
}
#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 Block
 


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