ich meine Handlung Klassen verwenden, basierend auf qwtplot können Code hier angesehen werden: ist https://github.com/pospiech/code/tree/master/libdev/plot/plottools/trunk/srcqwtplot: keine Handlung Update auf Replot
Dieser Code in einer anderen Anwendung verwendet, hier erstelle ich qwtplot Klassen (QMatrixPlot) und Daten hinzufügen und rufen Replot
plot2DAmplitude->setMatrixData(QVector<double>::fromStdVector(dataAmplitude),
xaxis.size(),
QwtInterval(xaxis.front(), xaxis.back()),
QwtInterval(yaxis.front(), yaxis.back()));
plot2DAmplitude->replot();
setMatrixData
ist der folgende Code:
void setMatrixData(const QVector<double> &values, int numColumns, QwtInterval xAxisRange, QwtInterval yAxisRange)
{
m_MatrixRasterData->setInterval(Qt::XAxis, xAxisRange);
m_MatrixRasterData->setInterval(Qt::YAxis, yAxisRange);
double minValue = *std::min_element(std::begin(values), std::end(values));
double maxValue = *std::max_element(std::begin(values), std::end(values));
m_MatrixRasterData->setInterval(Qt::ZAxis, QwtInterval(minValue, maxValue));
m_MatrixRasterData->setValueMatrix (values, numColumns);
d_spectrogram->setData(m_MatrixRasterData);
const QwtInterval zInterval = d_spectrogram->data()->interval(Qt::ZAxis);
setAxisScale(QwtPlot::yRight, zInterval.minValue(), zInterval.maxValue());
QwtScaleWidget *axis = axisWidget(QwtPlot::yRight);
axis->setColorMap(zInterval, QColorMap::map(d_mapType));
}
Dies funktioniert - einmal. Der zweite Aufruf mit verschiedenen Daten tut nichts, obwohl der gleiche Code aufgerufen wird. Nur wenn ich die Daten heranzoome und auswerte bekomme ein Update.
Irgendeine Idee? Qwt ist Version 6.1.3. Sobald ich ein minimales Beispiel abgeschlossen habe, werde ich diesen Beitrag aktualisieren.
Hier ist ein weiteres Beispiel für möglicherweise das gleiche Problem: https://stackoverflow.com/questions/34948704/qwt-plot-is-not-replotting/34949185#34949185. Allerdings 'plot-> setAutoReplot (true);' hat nicht gelöst, wenn für mich. Das Problem ist, dass die Daten, wenn sie für den Plot verfügbar sind, in der GUI nicht aktualisiert werden. –