2012-03-19 2 views
0

Я пытаюсь создать демо-версию диаграммы с использованием Qwt и C++. Я добавил следующий код обработчика нажатия кнопки:Segfault при добавлении графика Qwt в макет

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 ошибку сегментации (сюжет) ;.

Что я делаю неправильно?

ответ

2

Возможно, что centralWidget имеет значение NULL или вы не инициализировали ui (например, вызывали setUp()). Проверьте первый случай с if(lay == NULL), а второй - на ваш код.

Если первый случай правильный, посмотрите на свой файл пользовательского интерфейса в QDesigner и добавьте макет.

+0

Спасибо, лежал действительно НУЛЛ. Я добавил макет в Designer, и он работает. –

Смежные вопросы