You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Esimerkki, jossa liukupakĺkin arvo viedään Qwtplot:n arvoksi

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


#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

#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;
    }
}
  • No labels
You must log in to comment.