QChart
追加した に新しいポイントを追加した後にを再描画する方法を知りたいQLineSeries
です。
目標は、これを使用して、高速 (最大 400 000 ポイント/秒) で取得されたデータを表示し、ポイントがパケットで到着したときにプロットを更新することです。
これが私が取り組んできたテストプログラムです:
メインウィンドウ:
class MainWindow : public QMainWindow{
Q_OBJECT
QLineSeries *series;
QChart *chart;
QChartView *chartView;
int cnt=0;
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pB_Start_clicked();
private:
Ui::MainWindow *ui;
};
MainWindow コンストラクター:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){
ui->setupUi(this);
series = new QLineSeries();
chart = new QChart();
chart->setBackgroundRoundness(0);
chart->addSeries(series);
// A bunch of formatting
chart->setBackgroundVisible(false);
chart->setMargins(QMargins(0,0,0,0));
chart->layout()->setContentsMargins(0,0,0,0);
chart->legend()->hide();
chart->setPlotAreaBackgroundBrush(QBrush(Qt::black));
chart->setPlotAreaBackgroundVisible(true);
chartView = new QChartView(chart);
ui->gridLayout->addWidget(chartView);
}
そして、シリーズにポイントを追加するための pushButtonclicked
イベント:
void MainWindow::on_pB_Start_clicked(){
series->append(cnt,qSin(cnt/10));
cnt++;
// Update plot here << ======== HOW?
}
OpenGLSeries の例では、何らかの方法でそれを行います。方法がわかりません。ただし、その場合は、シリーズのすべてのポイントを追加するのではなく、新しいポイントに置き換えるため、少し異なります。