3

左ペイン(ツリービュー)をクリックするとグラフがQSplitter表示される右ペインの場所を使用しています。QCustomPlot問題は、スプリッターのサイズを変更するまで、グラフが表示されないか、更新されないことです。私はQtのサンプルコードを使用しています:

void MyDialog::setupPlot(QCustomPlot *customPlot)
{
    QString demoName = "Quadratic Demo";
    // generate some data:
    QVector<double> x(101), y(101); // initialize with entries 0..100
    for (int i=0; i<101; ++i)
    {
        x[i] = i/50.0 - 1; // x goes from -1 to 1
        y[i] = x[i]*x[i];  // let's plot a quadratic function
    }
    // create graph and assign data to it:
    customPlot->addGraph();
    customPlot->graph(0)->setData(x, y);
    // give the axes some labels:
    customPlot->xAxis->setLabel("x");
    customPlot->yAxis->setLabel("y");
    // set axes ranges, so we see all data:
    customPlot->xAxis->setRange(-1, 1);
    customPlot->yAxis->setRange(0, 1);
}

もちろん、コンストラクターでこの関数を呼び出すと(例のように)プロットが表示されますが、ボタンをクリックしてこれを呼び出すと表示されません。

この関数を呼び出したときにグラフがプロットされるようにするにはどうすればよいですか?

4

1 に答える 1

3

関数を使用replot()してプロットを更新する必要があります。

customPlot->replot();

これにより、内部バッファーに完全に再プロットされます。このメソッドは、グラフの軸範囲またはデータ ポイントを変更するときに呼び出す必要があります。これにより、変更が表示されます。

于 2015-02-04T18:46:51.100 に答える