QCustomPlot / Widget不显示图形/更新

时间:2015-02-04 18:41:34

标签: c++ qt qcustomplot

我正在使用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);
}

当我在构造函数中调用此函数时(如示例中所示),当然会显示绘图,但如果在单击按钮时调用此函数则不会显示。

当我调用此函数时,我需要做些什么才能确保绘制图形?

1 个答案:

答案 0 :(得分:3)

您应该使用replot()函数更新绘图:

customPlot->replot();

它会导致完整的重新插入内部缓冲区。当您对图形的轴范围或数据点进行更改时,必须调用此方法。这使得更改可见。