...
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 |
---|
#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 MainWindowClass class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit 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(doubleint Y); private: void update(); Ui::MainWindow *ui; }; #endif // MAINWINDOW_H |
Code Block |
---|
#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; } } |