将Qwt图添加到布局时的Segfault

时间:2012-03-19 00:26:11

标签: c++ qt segmentation-fault qwt

我尝试使用Qwt和C ++构建图表演示。我已将以下代码添加到按钮单击处理程序:

QwtPlot *plot = new QwtPlot(QwtText("Demo"));
plot->setGeometry(0, 0, 100, 100);
QwtPlotCurve curve("Sine");
QVector<double> xs;
QVector<double> ys;
for (double x = 0; x < 100; x++)
{
    xs.append(x);
    ys.append(sin(x));
}
QwtPointArrayData *series = new QwtPointArrayData(xs, ys);
curve.setData(series);
curve.attach(plot);
plot->show();
QLayout *lay = ui->centralWidget->layout();
lay->addWidget(plot);

并在addWidget(plot);。

中进行了段错误

我做错了什么?

1 个答案:

答案 0 :(得分:2)

centralWidget的布局可能为NULL,或者您尚未初始化ui(例如调用setUp())。使用if(lay == NULL)检查第一个案例,查看代码检查第二个案例。

如果第一种情况正确,请查看QDesigner中的UI文件并添加布局。