xy plot mit qwt -> fehleranalyse

Alles rund um die Programmierung mit Qt
Antworten
ecoplus
Beiträge: 11
Registriert: 22. September 2010 15:03

xy plot mit qwt -> fehleranalyse

Beitrag von ecoplus »

hallo,

ich versuch mich zurzeit in qwt einzuarbeiten... und schlage mich mit folgendem programm rum:
es soll 2 kurven plotten mehr nicht und das in der qt eclipse integration umgebung mit qwt.
wenn jemand wüsste wie man die fehler beheben kann, wär ich sehr dankbar.

hier das programm:

Code: Alles auswählen

#include <QtCore>
#include <QCoreApplication>
#include <QApplication>
#include <qapplication.h>
#include <qwt_plot.h>
#include <qwt_data.h>
#include <qwt_plot_marker.h>
#include <qwt_plot_curve.h>
#include <qwt_legend.h>
#include <qwt_text.h>
#include <qwt_math.h>
#include <iostream>

using namespace std;

class MyPlot : public QwtPlot
{
public:
  MyPlot( QWidget *parent=0, char *name=0 ) : QwtPlot( parent, name )
  {
    // Show a title
    setTitle( "This is an Example" );

    // Show a legend at the bottom
    setAutoLegend( true );
    setLegendPos( Qwt::Bottom );

    // Show the axes
    setAxisTitle( xBottom, "x" );
    setAxisTitle( yLeft, "y" );

    // Insert two curves and get IDs for them
    long cSin = insertCurve( "y = sin(x)" );
    long cSign = insertCurve( "y = sign(sin(x))" );

    // Calculate the data, 500 points each
    const int points = 500;
    double x[ points ];
    double sn[ points ];
    double sg[ points ];

    for( int i=0; i<points; i++ )
    {
      x[i] = (3.0*3.14/double(points))*double(i);

      sn[i] = 2.0*sin( x[i] );
      sg[i] = (sn[i]>0)?1:((sn[i]<0)?-1:0);
    }

    // Copy the data to the plot
    setCurveData( cSin, x, sn, points );
    setCurveData( cSign, x, sg, points );

    // Set the style of the curves
    setCurvePen( cSin, QPen( blue ) );
    setCurvePen( cSign, QPen( green, 3 ) );

    // Show the plots
    replot();
  }
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MyPlot p;
     a.setMainWidget( &p );
     p.show();

    return a.exec();
}
.pro file:

Code: Alles auswählen

TEMPLATE = app
TARGET = z1 

QT        += core 

HEADERS   +=
SOURCES   += main.cpp
FORMS	  +=
RESOURCES +=
CONFIG    +=  console 
LIBS += -L"C:/qwt/lib" -lqwt5 -lqwtd5
INCLUDEPATH += "C:/qwt/src"
DEFINES +=  QT_DLL / QWT_DLL 
QWT_ROOT = C:/qwt
export LD_LIBRARY_PATH=C:/qwt/lib
das sind die fehler die mir ausgegebn werden:
Bild

nebenbei weis ich auch nicht warum er mir den debug error bringt, vieleicht kann da jemand was dau sagen

vielen dank
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

ich versuch mich zurzeit in qwt einzuarbeiten
Bevor Du das tust, solltest du etwas Zeit abknipsen und dich in QT selber etwas einarbeiten.
#include <QCoreApplication>
#include <QApplication>
#include <qapplication.h>
Das sieht nach Panic aus ! :twisted:
Wenn eine klasse was nicht kann, naja vielleicht lernt sie dazu wenn ich nur genug header anziehe ! :twisted:

QApplication ist von QCoreApplication abgeleitet. QApplication sollte QCoreApplication also genauestens kennen.
<qapplication.h> ist eine interne QT header datei. das verweissen auf die richtige include datei von einer meta include Datei aus sollte dir das qt plugin ueber die pfade und makros scho richtig setzen.
ein einzelnes
#include <QApplication>
würde also voellig genuegen !

using namespace std; ???
Du verwendest keine einzigste Klasse aus dem std namespace ? was soll das also ?

blue im allgemeinen Scope wird er auch nicht kennen ... versuchs mal mit QColor::blue oder aehnliches ?
QApplication wird auch nie ein SetMainWidget haben ... hatte es auch nie. Andere QT Klassen haben sowas !

QwtPlot kennt er zwar, aber die von dem verwendeten verweisse nich ...
die QWT sauber installiert und ggf. mal die Doku gelesen ?

Ciao ...
ecoplus
Beiträge: 11
Registriert: 22. September 2010 15:03

Beitrag von ecoplus »

wie gesagt versuche ich gerade dieses tutorial abzuarbeiten...

http://www.digitalfanatics.org/projects ... ter11.html

ich war halt so verzweifelt da das das erste bsp. ist und das schon nicht klappt.
deshalb das chaos. es ist mir auch teilweise bewusst das ich vieles doppelt hingeschrieben hab.

und zu using namespace.... es soll später ein regelalgorithmus welcher klassen aus dem std namespace benutzt in einem diagramm angezeigt werden. das wollte ich nun heute realisieren, wusste aber nich das ich schon bei dem daigramm hängen bleibe.

ganz salopp gesagt soll das heißen das man das bsp. in dem tutorial nich so ohne weiteres ausführen kann?

besten dank
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

Auf jeden Fall solltest du mal bitte noch QtGui einbinden und nicht nur QtCore...

Und soweit ich mich erinnern kann, ist dieses wunderhübsche Tutorial für Qt3 weshalb blue, green, etc. wahrscheinlich nicht funktioniert (und auch setMainWidget)

Qwt selber hat auch selber Examples vielleicht solltest du die dir mal anschauen....

Mfg androphinx
Uwe
Beiträge: 176
Registriert: 9. Oktober 2005 13:37
Wohnort: München

Beitrag von Uwe »

ecoplus hat geschrieben:wie gesagt versuche ich gerade dieses tutorial abzuarbeiten...
Ziemlich sinnlos - es sei denn Du arbeitest mit uralten Versionen von Qwt und Qt.

Uwe
ecoplus
Beiträge: 11
Registriert: 22. September 2010 15:03

Beitrag von ecoplus »

danke für die antworten. da weis ich erst mal bescheid das das bei qt4 nicht funzt. dann werd ich mal die examples durchgehn oder kann jemand ein gutes qwt tutorial empfehlen?

besten dank
Antworten