qcustomplot x轴当前时间_Qt使用QCustomPlot开发

一、入门

2、把.cpp和.h放在工程目录下,并将cpp和h加入工程;

3、在.pro中:QT += printsupport;

4、在ui中添加一个Widget,右键提升为,输入:QCustomPlot,改变对象名称为customPlot;

5、加入代码:

void MainWindow::initUi()

{

QVector x(101), y(101); // initialize with entries 0..100

for (int i=0; i<101; ++i)

{

x[i] = i/50.0 - 1; // x goes from -1 to 1

y[i] = x[i]*x[i]; // let's plot a quadratic function

}

ui->customPlot->addGraph();// 添加数据曲线(一个图像可以有多个数据曲线),graph(0);可以获取某个数据曲线(按添加先后排序);默认x1,y1轴

ui->customPlot->addGraph(ui->customPlot->xAxis,ui->customPlot->yAxis2);//添加的曲线以x1,y2为基准轴

ui->customPlot->graph(0)->setData(x, y);// setData();为数据曲线关联数据

ui->customPlot->xAxis->setLabel("x");// 为坐标轴添加标签

ui->customPlot->yAxis->setLabel("y");

ui->customPlot->xAxis->setRange(-1, 1);// 设置坐标轴的范围,以看到所有数据

ui->customPlot->yAxis->setRange(-1, 1);

ui->customPlot->replot();// 重画图像

//ui->customPlot->rescaleAxes();//自动设置最合适的显示范围

//ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);//可移动可拖放

//ui->customPlot->graph(0)->addData(double,double);//追加点

}

效果:

6:、添加QCustomPlot的帮助文档

在下载的源码包里有个qch文件,放在:D:\QT5.8\Docs\Qt-5.8里面,就可以使用帮助文档了

ps:

1、设置x坐标轴为时间

int showTime=60;//60秒

QDateTime dateTime=QDateTime::currentDateTime();double now =dateTime.toTime_t();

QSharedPointer xTicker(newQCPAxisTickerDateTime);

xTicker->setTickCount(2);

xTicker->setDateTimeFormat("yyyy.MM.dd-hh:mm");//ui->customPlot_4_1->xAxis->setTicker(xTicker);

xTicker->setTickStepStrategy(QCPAxisTicker::tssMeetTickCount);

ui->customPlot_4_1->xAxis->setRange(now-showTime,now+showTime);//显示多久的数据,前后60秒

最小单位是秒

2、设置位置

setPositionAlignment(Qt::AlignTop)

3、坐标轴刻度样式

使用QCPAxis::setTicker (QSharedPointer< QCPAxisTicker > )来定制刻度

4、设置刻度高度

setTickLength

5、设置坐标轴样式

setUpperEnding

6、设置两个线条之间填充

ui->customplot->graph(0)->setBrush(Qt::cyan);

ui->customplot->graph(0)->setChannelFillGraph(ui->customplot_2_1->graph(1));

7、设置曲线形状

QCPGraph::setScatterStyle(QCPScatterStyle &style);

8、坐标轴相关参数命名

9、坐标区相关距离命名

9.1、设置整个cp坐标轴距离左侧的距离

ui.customPlot->yAxis->setPadding(40);//距离左边的距离

10、设置刻度label旋转

ui.customPlot->xAxis->setTickLabelRotation(60);

11、设置坐标轴方向

ui.customPlot->xAxis->setRangeReversed(false);//x轴反向

12、获取当前x、y轴range的左右值

realLeft = ui.customPlot->xAxis->range().lower;

realRight = ui.customPlot->xAxis->range().upper;

13、设置当前显示范围有多少个刻度

ticker->setTickCount(n);

ui->customplot_2_3->xAxis->ticker()->setTickCount(5);

14、设置长刻度步长

QCPAxisTickerFixedticker->setTickStep(0.1);

15、时间轴定制

QDateTime dateTime =QDateTime::currentDateTime();double now =dateTime.toTime_t();

QSharedPointer yTicker(newQCPAxisTickerDateTime);

yTicker->setTickCount(2);

yTicker->setDateTimeFormat("yyyy.MM.dd-hh:mm");//ui->customPlot->xAxis->setTicker(yTicker);

yTicker->setTickStepStrategy(QCPAxisTicker::tssMeetTickCount);

ui->customPlot->xAxis->setRange(now-3600,now+3600);//显示3个小时的数据

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值