Здравствуйте! Пытаюсь отобразить несколько графиков на QwtPlotCurve. Вроде бы все хорошо, но графики отображаются только после выполнения задержки (Sleep(1000)) после каждого вызова функции добавления данных на график.
функция добавления графика на поле рисования
void Widget::GetCurve(QwtPlot *plot, Qt::GlobalColor colorLine)
{
QwtPlotCurve *curve;
QwtSymbol *symbol;
QPolygonF *points;
curve=new QwtPlotCurve();
symbol= new QwtSymbol( QwtSymbol::Ellipse,
QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 8, 8 ) );
points = new QPolygonF;
curve->setTitle("Demo Curve");
curve->setPen(colorLine, 6); // цвет и толщина кривой
curve->setRenderHint(QwtPlotItem::RenderAntialiased, true); // сглаживание
curve->setSymbol(symbol);
listCurve.append(curve);
listCurve.last()->attach(plot);
}
функция добавления данных на график:
void Widget::AppendSamples()
{
QVector<double> x;
QVector<double> y;
QList<QPointF> listPoint = ReturnPointsList(150);
int listPointCount = listPoint.count();
for (int i=0;i<listPointCount;i++)
{
x.append(listPoint[i].x());
y.append(listPoint[i].y());
}
listCurve.last()->setSamples(x,y);
}
Как это все используется:
GetCurve(listPlot.last(),Qt::red);
AppendSamples();
// Sleep::Sleeper(ms);
GetCurve(listPlot.last(),Qt::green);
AppendSamples();
//Sleep::Sleeper(ms);
GetCurve(listPlot.last(),Qt::black);
AppendSamples();
// Sleep::Sleeper(ms);
listPlot.last()->replot();