• 3863阅读
  • 0回复

请问QwtPlotCurve可以用不同颜色显示同一条曲线吗? [复制链接]

上一主题 下一主题
离线robertkun
 

只看楼主 倒序阅读 楼主  发表于: 2012-10-26
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QFile>
  4. #include <QStringList>
  5. #include <QtCore>
  6. #include <QString>
  7. #include <QTextStream>
  8. #include <cstdio>
  9. #include <QtGlobal>
  10. #include <qwt_data.h>
  11. MainWindow::MainWindow(QWidget *parent) :
  12. QMainWindow(parent),
  13. ui(new Ui::MainWindow)
  14. {
  15. QFile infile;
  16. infile.setFileName(":/testplot.txt");
  17. infile.open(QFile::ReadOnly);
  18. ui->setupUi(this);
  19. ui->qwtPlot->setCanvasBackground(Qt::white);
  20. ui->qwtPlot->setAxisScale(QwtPlot::xBottom,0,24.0);
  21. ui->qwtPlot->setAxisScale(QwtPlot::yLeft,0,50);
  22. if( !curve ){
  23. qDebug() << "Creating curve";
  24. curve = new QwtPlotCurve();
  25. curve->attach(ui->qwtPlot);
  26. QColor c = Qt::red;
  27. c.setAlpha(150);
  28. curve->setPen(c); //?????????????????????? 怎样给每个坐标点之间设置不同的颜色?谢谢!
  29. }
  30. QTextStream file(&infile);
  31. while(!file.atEnd())
  32. {
  33. QString line = file.readLine();
  34. QStringList fields = line.split(' ');
  35. if(fields.size()>=1)
  36. {
  37. QString xdata = fields.takeFirst();
  38. QString ydata = fields.takeFirst();
  39. xData.append((double)xdata.toDouble());
  40. yData.append((double)ydata.toDouble());
  41. // int i= xData.size();
  42. }
  43. }
  44. curve->setSample(&xData[0],&yData[0],xData.size());//&xData[0],&yData[0]);
  45. ui->qwtPlot->replot();
  46. }
  47. MainWindow::~MainWindow()
  48. {
  49. delete ui;
  50. if( curve )
  51. delete curve;
  52. }




                                              简单的生活使人快乐!
快速回复
限100 字节
 
上一个 下一个