0

我编写了一个模拟程序,它解决了一些方程并将结果绘制在一个 OpenGL 窗口中。模拟随着时间不断发展。我想动态添加积分。我正在使用如下代码:

QwtPlot* plot = new...;
QwtPlotCurve* plotdata = new...;
QVector<QPoint> data = getData();
plotdata->setSamples(data);

这得到了重置所有点的情节。我可以简单地加分吗?

感谢您的任何努力:-)


如果没有办法做到这一点,我很想听听。请告诉我!

4

2 回答 2

0

使用QTimer带有可调间隔的 aQSpinBox怎么样?

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(updatePlot()));
    timer->start(5000); //adjust from GUI with timer->setInterval(newValue)


    ...

    void updatePlot(){
        // QSettings initialized somewhere
        int maxSamples = settings.value("plot/maxSamples", 100).toInt();
        QVector<QPoint> data = getData(maxSamples);  // get this many samples
        plotdata->setSamples(data);

    }
于 2012-04-20T23:21:16.133 回答
0

我得到了它。没有办法以那种抽象的方式做到这一点。但人们可以回忆起这种方法:

void QwtPlotCurve::setRawSamples();

使用 replot(),这将是最便宜的方法。它不涉及任何数据复制。

干杯:)

于 2012-04-21T17:20:55.850 回答