0

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);でsegfaultsします。

私は何が間違っているのですか?

4

1 に答える 1

2

のレイアウトcentralWidgetはおそらくNULLであるか、初期化されていませんui(呼び出しsetUp()など)。if(lay == NULL)コードを見て、最初のケースと2番目のケースを確認してください。

最初のケースが正しい場合は、QDesignerでUIファイルを確認し、レイアウトを追加してください。

于 2012-03-19T00:33:07.310 に答える