我最近在弄
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
这是mainwindow.cpp
- #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;
- }