61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
#include "qcustplot.h"
|
|
#include "ui_qcustplot.h"
|
|
#include <QDateTime>
|
|
#include <QDebug>
|
|
#include "gloab.h"
|
|
|
|
QCustPlot::QCustPlot(QVector<double> xData, QVector<double> 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<QCPAxisTickerDateTime> timeTicker(new QCPAxisTickerDateTime);
|
|
timeTicker->setDateTimeFormat("hh:mm:ss");
|
|
ui->plot->xAxis->setTicker(timeTicker);
|
|
}
|
|
|
|
// Y轴
|
|
if(!isNub){
|
|
QVector<double> ticks;
|
|
QVector<QString> labels;
|
|
for (int i = 1; i < Gloab::rule.size(); ++i) {
|
|
ticks.append(i);
|
|
labels.append(Gloab::rule[i]);
|
|
}
|
|
QSharedPointer<QCPAxisTickerText> 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;
|
|
}
|
|
|