qwt中QwtPlotCurve 调用setData时出错,
我最近在弄qwt通过读取文件话曲线的界面,但是在调用QwtPlotCurve 调用setData中时确老是发生错误,请各位高手能帮一下忙
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui>
#include <qwt_plot_curve.h>
#include <QVector>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void file(QIODevice *fileDevice);
private:
Ui::MainWindow *ui;
QwtPlotCurve * curve;
QVector<double> xData;
QVector<double> yData;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QStringList>
#include <QtCore>
#include <QString>
#include <QTextStream>
#include <cstdio>
#include <QtGlobal>
#include <qwt_data.h>
MainWindow::MainWindow(QWidget *parent) :
????QMainWindow(parent),
????ui(new Ui::MainWindow)
{
????QFile infile;
????infile.setFileName(":/testplot.txt");
????infile.open(QFile::ReadOnly);
????ui->setupUi(this);
????ui->qwtPlot->setCanvasBackground(Qt::white);
????ui->qwtPlot->setAxisScale(QwtPlot::xBottom,0,24.0);
????ui->qwtPlot->setAxisScale(QwtPlot::yLeft,0,50);
????if( !curve ){
????????qDebug() << "Creating curve";
????????curve = new QwtPlotCurve();
????????curve->attach(ui->qwtPlot);
????????QColor c = Qt::red;
????????c.setAlpha(150);
????????curve->setPen(c);
????}
????QTextStream file(&infile);
????while(!file.atEnd())
????{
????????QString line = file.readLine();
????????QStringList fields = line.split(' ');
????????if(fields.size()>=1)
????????{
????????????QString xdata = fields.takeFirst();
???????????? QString ydata = fields.takeFirst();
???????????? xData.append((double)xdata.toDouble());
??????????????yData.append((double)ydata.toDouble());
?????????? //??int i= xData.size();
????????}
????}
????curve->setData(&xData[0],&yData[0],xData.size());//&xData[0],&yData[0])??//调试时就是到这里出现错误
?? ui->qwtPlot->replot();
}
MainWindow::~MainWindow()
{
????delete ui;
????if( curve )
????????delete curve;
}