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

Compare with Current View Page History

« Previous Version 3 Next »

Qwt on Qt - kirjasto teknisiin sovelluksiin. Qt:n ja Qwt:n voit asentaa paketien hallinnalla ainakin Ubuntussa. Kun Qwt on ladattu koneelle, käyttöliittymä valikossa näkyvät Qwt:n graafiset komponentit. Jotta kirjastofunktioita voitaisiin käyttää, täytyy projektille kertoa Qwt-otsikkotiedostojen polku INCLUDEPATH makron avulla ja Qwt kirjastot on lisättävä LIBS makrolla, kuten alla olevassa esimerkissä on näytetty. Kannattaa tarkastaa polut omalta koneelta, jotta ei pala tupakkaa tai tule harmaita hiuksia.

Apuja Qwt-ohjelmointiin

Tee Qt Greatorilla GUI-sovellus (Window tai Dialog). Lisää siihen QwtPlot ... 

Lisäykset projektitiedostoon

#------------------------------------------------\-
# Project created by QtCreator 2009-11-05T17:16:56
#------------------------------------------------\-
TARGET = SimulaattoriQwt
TEMPLATE = app
#lisää kaksi seuraavaa riviä
INCLUDEPATH += /usr/include/qwt-qt4
LIBS += -L/usr/lib -lqwt-qt4
SOURCES += main.cpp
mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui

Luokan 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 "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(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<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);
TokaKurvi->attach(ui-> EkaqwtPlot);//liitetään käppyrät plotatavaan alueeseen
EkaKurvi->attach(ui-> EkaqwtPlot);
ui-> EkaqwtPlot->setTitle(Kurvi);// laitetaan plotatavalle alueelle nimi
ui-> EkaqwtPlot->replot(); //piirretään
//muut alustukset
}

MainWindow::~MainWindow()
{
delete EkaKurvi;
delete TokaKurvi;
delete ui;
}

Luokan otsikkotiedosto#ifndef MAINWINDOW_H

#define MAINWINDOW_H
#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 MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = 0);
~MainWindow();

private:
Ui::MainWindow \*ui;
QwtPlot *EkaPlotti;
QwtPlotCurve *EkaKurvi;
QwtPlotCurve *TokaKurvi;
QwtText Kurvi;
int i;
double x[100], y1[100], y2[100];
};

#endif // MAINWINDOW_H

  • No labels
You must log in to comment.