Header:

 #ifndef DIALOG_H
#define DIALOG_H
#include <QtGui/QDialog>
#include <QTimer>
#include <QtGui/QMainWindow>
#include <qwt_plot_marker.h>
#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>

namespace Ui
{
    class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
private slots:

void update();
void PaivitaNappiX(double);
void PaivitaNappiY(double);

private:
    Ui::Dialog *ui;
    QTimer *timer;
    int Arvo;
    QwtPlot *EkaPlotti;
QwtPlotCurve *EkaKurvi;
QwtPlotCurve *TokaKurvi;
QwtText Kurvi;
int i;
double x[1000], y1[1000], y2[1000];
double arvox;
double arvoy;

};

#endif // DIALOG_H


Muodostin:


#include <qwt_plot_marker.h>
#include <qwt_legend.h>
#include <qwt_scale_draw.h>
#include <qwt_math.h>
#include <qwt_plot_item.h>
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent), ui(new Ui::Dialog)

{
    ui->setupUi(this);
    timer = new QTimer(this);
    //piirrellään vähän kuvia
Kurvi.setText("Eka kuva");
EkaKurvi  = new QwtPlotCurve();
TokaKurvi = new QwtPlotCurve();
EkaKurvi->setPen(QPen(Qt::red));
TokaKurvi->setPen(QPen(Qt::blue));
for(i=0;i<1000;i++){ x[i]=i; y1[i]=i; y2[i]=1000-i;}//luodaan vähän dataa
EkaKurvi->setData(x, y1, 1000);//laitetaan data käppyriin
//TokaKurvi->setData(x, y2, 100);
//TokaKurvi->attach(ui-> EkaqwtPlot);//liitetään käppyrät plotattavaan alueeseen
EkaKurvi->attach(ui-> EkaqwtPlot);
ui-> EkaqwtPlot->setTitle(Kurvi);// laitetaan plotatavalle alueelle nimi
ui-> EkaqwtPlot->replot(); //piirretään
//muut alustukset
ui->Knob_X->setRange(0,1000,10,10);
ui->Knob_Y->setRange(0,1000,10,10);
connect(ui->Knob_X,SIGNAL(valueChanged(double)),this,SLOT(PaivitaNappiX(double)));
connect(ui->Knob_Y,SIGNAL(valueChanged(double)),this,SLOT(PaivitaNappiY(double)));
    connect(timer,SIGNAL(timeout()), this, SLOT(update()));
    timer->start(1000); //käynnistä ajastin, timeout sekunnin välein
    Arvo=0;
}

Dialog::~Dialog()

{
    delete ui;
}
void Dialog::update()

{
    Arvo++;
    ui->dial->setValue(Arvo);
}

void Dialog::PaivitaNappiX(double arvo)

{

 int i;
 arvox=arvo;
 //for(i=0;i<100;i++)
 //x[i]=i; y1[i]=i; y2[i]=100-i;//luodaan vähän dataa
//EkaKurvi->setData(x, y1, 100);//laitetaan data käppyriin
//TokaKurvi->setData(x, y2, 100);

}
void Dialog::PaivitaNappiY(double arvo)

{
 arvoy=arvo;
  y1[(int) arvox]=(int) arvoy;  //luodaan vähän dataa
EkaKurvi->setData(x, y1, 1000);//laitetaan data käppyriin
EkaKurvi->attach(ui-> EkaqwtPlot);
ui-> EkaqwtPlot->replot(); //piirretään
}



  • No labels
You must log in to comment.