#include "qcustplot.h" #include "ui_qcustplot.h" #include #include #include "gloab.h" QCustPlot::QCustPlot(QVector xData, QVector yData, int jd, bool isNub, bool isTime, QWidget *parent) : QWidget(parent) , ui(new Ui::QCustPlot) { ui->setupUi(this); //标题 QCPTextElement *m_title; ui->plot->plotLayout()->insertRow(0); m_title = new QCPTextElement(ui->plot, QString("基带 %1").arg(jd+1)); ui->plot->plotLayout()->addElement(0, 0, m_title); // X轴 if (isTime) { QSharedPointer timeTicker(new QCPAxisTickerDateTime); timeTicker->setDateTimeFormat("hh:mm:ss"); ui->plot->xAxis->setTicker(timeTicker); } // Y轴 if(!isNub){ QVector ticks; QVector labels; for (int i = 1; i < Gloab::rule.size(); ++i) { ticks.append(i); labels.append(Gloab::rule[i]); } QSharedPointer textTicker(new QCPAxisTickerText); textTicker->addTicks(ticks, labels); ui->plot->yAxis->setTicker(textTicker); } // 添加图形 ui->plot->addGraph(); ui->plot->graph(0)->setData(xData, yData); // 自动调整轴范围 ui->plot->rescaleAxes(); ui->plot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom ); if(!xData.empty()){ ui->plot->xAxis->setRange(xData.first(),xData.last()); } } QCustPlot::~QCustPlot() { delete ui; }