#include "plotwidget.h" #include "ui_plotwidget.h" #include #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) # include #endif #include #include #include PlotWidget::PlotWidget(QWidget *parent) : QMainWindow(parent), ui(new Ui::PlotWidget) { ui->setupUi(this); setGeometry(400, 250, 542, 390); setupItemDemo(ui->customPlot); statusBar()->clearMessage(); ui->customPlot->replot(); } void PlotWidget::setupItemDemo(QCustomPlot *customPlot) { customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); QCPGraph *graph = customPlot->addGraph(); graph->setData(x, y); graph->setPen(QPen(Qt::blue)); graph->rescaleKeyAxis(); customPlot->yAxis->setRange(-1.45, 1.65); customPlot->xAxis->setRange(1,500); customPlot->xAxis->grid()->setZeroLinePen(Qt::NoPen); } void PlotWidget::appentDataDisplaySlot(double yValue) { double secs = QCPAxisTickerDateTime::dateTimeToKey(QDateTime::currentDateTime()); if(0!=xNum) { y.append(yValue); x.insert(0,xNum); xNum--; } else { y.remove(0); y.append(yValue); } ui->customPlot->graph()->setData(x,y); ui->customPlot->replot(); // calculate frames per second: // double key = secs; // static double lastFpsKey; // static int frameCount; // ++frameCount; // if (key-lastFpsKey > 2) // average fps over 2 seconds // { // ui->statusBar->showMessage( // QString("%1 FPS, Total Data points: %2") // .arg(frameCount/(key-lastFpsKey), 0, 'f', 0) // .arg(ui->customPlot->graph(0)->data()->size()) // , 0); // lastFpsKey = key; // frameCount = 0; // } } PlotWidget::~PlotWidget() { delete ui; } void PlotWidget::setPlotDataCount(int value) { n = value; }