Nachdem ich mich ein bisschen in Qt4 eingearbeitet habe, möchte ich nun mit Qwt5 einige Daten darstellen. Dabei handelt es sich um bis zu 50 Kurven, die in einem Plot dargestellt werden sollen. Die Daten sind zentral (in einer QList) in einer "projectData"-Klasse (abgeleitet von QObject) gespeichert und jede Sekunde kommt zu jeder Kurve ein neuer Wert hinzu.
Nun habe ich mir mit dem Designer einen Dialog gebastelt (class VisualisationDialog : public QDialog, public Ui_VisualisationDialog) und kann dort auch einen Qwt-Plot (class gpsviewPlotter : public QwtPlot) darstellen. Wenn ich testhalber im Konstruktor von "gpsviewPlotter" Daten "hartkodiere", also
Code: Alles auswählen
...
curve = new QwtPlotCurve( QString("Curve1") );
curve->setRenderHint(QwtPlotItem::RenderAntialiased);
curve->setPen(QPen(Qt::yellow));
curve->setYAxis(QwtPlot::yLeft);
curve->attach(this);
double x[5];
double y[5];
x[0] = 0.0; y[0] = 0.0;
x[1] = 10.0; y[1] = 100.0;
x[2] = 20.0; y[2] = 10.0;
x[3] = 30.0; y[3] = -10.0;
x[4] = 40.0; y[4] = 33.0;
curve->setData( x, y, 5);
// curve->setData(gpsviewPlotData(x[0], y[0], (size_t) 5));
replot();
...
Uwe schreibt:
Gibt es dafür Beispiele? Mir noch nicht klar, wie man das macht...Qwt speichert keine Daten, sondern zeichnet sie nur. D.h. Du mußt eine eigene Datenhaltung implementieren, in die Du dann die zusätzlichen Punkte einträgst.
Die Verbindung zwischen Deiner Datenhaltung und Qwt funktioniert über ein QwtData Objekt. Du kannst eine der vordefinierten QwtData Klassen verwenden, wenn aber keines passt, leite einfach ein zu Deiner Datenhaltung passendes ab.
Vielen Dank für Eure Hilfe!
Markus