Esimerkki, jossa likupakĺkin liukupakĺkin arvo viedään Qwtplot:n arvoksi. Toimii qwt versiolla 6.0.1.
Code Block |
---|
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
|
Code Block |
---|
#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
|
Code Block |
---|
p, li { white-space: pre-wrap; }
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
: QMainWindow(parent),
ui(new Ui::MainWindowClassMainWindow)
{
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(doubleint)),this, SLOT(PiirraPlotiin(doubleint)));
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);
timer->start(1000);//käynnistä ajastin, timeout sekunnin välein
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
indeksi=0;
EdellinenY=0;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::PiirraPlotiin(doubleint Y)
{
if((int)Y != EdellinenY)
{
x[indeksi]=(doubleint)indeksi;
y[indeksi]=Y;
EkaKurvi->setData>setSamples(x, y, indeksi);//laitetaan data käppyriin
ui-> qwtPlot->replot(); //piirretään
indeksi++;
if(indeksi>9999)indeksi=0;
EdellinenY=(int)Y;
}
}
void MainWindow::update()
{
}
|