#include "qtwidgetsapplication2.h"
#include <QPushButton>
#include <QLineEdit>
#include <QDateTime>
#include <QSharedPointer>
QtWidgetsApplication2::QtWidgetsApplication2(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
this->resize(1000, 600);
QWidget* widget1 = new QWidget(this);
widget1->setGeometry(QRect(QPoint(10,100), QSize(580, 50)));
widget1->setVisible(true);
double key;
QDateTime dt(QDateTime::currentDateTime());
int size = 24 * 60 / 5;
double start = 20;
double stop = 30;
double space = 10.0 / size;
customPlot = new QCustomPlot(this);
customPlot->setGeometry(0,0, 800, 400);
customPlot->setVisible(true);
graph = customPlot->addGraph();
//QCPAxisTickerDateTime时间坐标轴 必须要使用智能指针
QSharedPointer<QCPAxisTickerDateTime> timeAxis(new QCPAxisTickerDateTime);
//设置日期时间格式
//timeAxis->setDateTimeFormat("yyyy-MM-dd hh:mm:ss");
//timeAxis->setDateTimeFormat("dd-hh:mm");
//设置轴的刻度对象
customPlot->xAxis->setTicker(timeAxis);
for (int i = 0; i < size; i++)
{
key = dt.toTime_t();
graph->addData(key, start + space * i);
dt = dt.addSecs(5 * 60);
}
for (int i = 0; i < size; i++)
{
key = dt.toTime_t();
graph->addData(key, qQNaN());
dt = dt.addSecs(5 * 60);
}
for (int i = 0; i < size; i++)
{
key = dt.toTime_t();
graph->addData(key, stop - space * i);
dt = dt.addSecs(5 * 60);
}
//设置可移动
customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectLegend | QCP::iMultiSelect | QCP::iSelectPlottables);
//x轴设置缩放比例,y轴缩放比例为1,则不进行缩放
customPlot->axisRect()->setRangeZoomFactor(1.2, 1);
customPlot->rescaleAxes(); // 重新调整轴的范围以显示所有数据点
//刷新
customPlot->replot(QCustomPlot::rpQueuedReplot);
}
QtWidgetsApplication2::~QtWidgetsApplication2()
{}
qcustomplot实现非连续折线
最新推荐文章于 2024-06-12 10:00:23 发布