Seite 1 von 1

[gelöst]QwtPlot::setData Daten aus dynamischen Array

Verfasst: 7. Oktober 2008 11:14
von chr3
Moin,

gibt es eine Möglichkeit eine QwtPlotCurve mit Daten aus einem dynamischen Array zu erzeugen?

Code: Alles auswählen

QwtPlotCurve * plotCurve = new QwtPlotCurve("CurveTitel");
[...]
plotCurve->setData(...);
Aus QwtPlotCurve Class Reference:

void setRawData (const double *x, const double *y, int size)
void setData (const double *xData, const double *yData, int size)
void setData (const QwtArray< double > &xData, const QwtArray< double > &yData)
void setData (const QPolygonF &data)
void setData (const QwtData &data)

Wäre von Anfang an klar, wieviele x-Werte und zugehörige y-Werte dargestellt werden sollen - könnte ich dies mit Array der Art: const double[size] machen. Aber erst zur Laufzeit ist bekannt, wie viele Wertepaare im Plot dargestellt werden sollen, daher kann ich doch keine const-Arrays verwenden - oder geht das doch irgendwie?

Nette Grüße,
Christian

Verfasst: 7. Oktober 2008 11:36
von Ginsengelf
Moin, ich glaube, du hast einen Verständnisfehler beim "const". Du kannst an diese Methoden durchaus double* (also "normale" dynamische Arrays [vielleicht über Vector und Konsorten nachdenken?]) übergeben, nur innerhalb der Methode wird mit einem const double* gearbeitet.

Ginsengelf

Verfasst: 7. Oktober 2008 11:56
von chr3
Hmm, ja entweder das oder aber ich sollte das Problem besser ganz anders angehen.

Initial startet die Applikation mit einer Geraden zwischen Start- und Endpunkt. Sobald der Benutzer Daten geladen hat, sollte sich die Kurve verändern. Das Array wird also mit der Size=2 erzeugt und wird später mit einem Array unbekannter Größe überschrieben.

Vielen Dank soweit :-)

Verfasst: 7. Oktober 2008 14:46
von Ginsengelf
Moin, dann solltest du wirklich über std::vector (bzw. QVector, je nachdem, was dir besser gefällt) nachdenken. Da kannst du beliebig Elemente einfügen, und der Speicher ist wie beim 08/15-Array kontinuierlich, du kannst also einfach die Adresse des ersten Objekts an die setData()-Methode übergeben.

Ginsengelf

Verfasst: 9. Oktober 2008 17:03
von chr3
Jo, die beiden Sachen habe ich mir auch schon angesehen. Vielen Dank.