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