QCustomPlot的设置和使用

big_anana 2018-01-22 14:23:15 6292

下载链接:http://www.qcustomplot.com/index.php/download
博主使用的是1.3.2的版本,最新的2.0的版本中有很多的东西已经更新,官方的使用说明存在出入,所以此次使用的是1.3.2的版本。

将下载好的文件解压,qcustomplot.cpp 和qcustomplot.h这两个文件,放入我们创建的工程里面。

下载的解压文件中有相应的example。可以先查看相应的PLOTS的工程文件。在QT中打开项目工程plot-examples.pro,进行查看可编译。

在自己创建的工程中:

customPlot = new QCustomPlot();
QVBoxLayout *vbox = new QVBoxLayout();
vbox->addWidget(customPlot);
vbox->setSpacing(0);
vbox->setContentsMargins(0,0,0,0);

先设置一下控件,以及设置布局方式。

customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectAxes | QCP::iSelectLegend | QCP::iSelectPlottables);
这部分是设置鼠标点击,鼠标滑轮,区域设置,标题设置等,可选的设置。

customPlot->setInteractions(QCP::iSelectLegend);
//设置折线等的设置
customPlot->axisRect()->setupFullAxesBox();
//区域填充满坐标轴
customPlot->legend->setVisible(true);
//折现描述的区域模块显示
QFont legendFont = font();
legendFont.setPointSize(20);
//设置字体大小
customPlot->legend->setFont(legendFont);
customPlot->xAxis->setTickLabelFont(legendFont);
customPlot->yAxis->setTickLabelFont(legendFont);
//设置XY轴字体大小

// 设置xy轴内的模式:

customPlot->addGraph();
customPlot->graph()->setLineStyle((QCPGraph::LineStyle::lsLine));

// 设置线的模式
customPlot->graph()->setScatterStyle(QCPScatterStyle::ScatterShape::ssDisc);

//设置线的节点的

QPen graphPen;
graphPen.setColor(QColor(Qt::red));
graphPen.setWidthF(3);
customPlot->graph()->setPen(graphPen);
//设置线的颜色,宽度,以及画笔

customPlot->xAxis->setRange(0, 10);
customPlot->xAxis->setAutoTickStep(false);
customPlot->xAxis->setTickStep(3);
customPlot->xAxis->setAutoSubTicks(false);
customPlot->xAxis->setSubTickCount(3-1);
customPlot->yAxis->setRange(0, 5);
customPlot->yAxis->setAutoTickStep(false);
customPlot->yAxis->setTickStep(1);
//    customPlot->yAxis->setSubTickCount(1);
customPlot->xAxis->setLabel("x_str");
customPlot->yAxis->setLabel("y_str");

//设置X轴和Y轴的范围
//设置XY轴的间隔的时候,需要先把自动设置间隔的关闭,然后手动设置。
//XY轴的标签也需要设置名称。

QVector<double> x, y;
y << 0<< 2 << 3 << 5 << 7  << 3  << 8 << 2<<5;
x <<0<< 3<< 6 << 9 << 12 << 15 << 18 << 21 <<24;
customPlot->graph()->setData(x, y);
customPlot->replot();

设置数据的时候,需要用到QVector,然后将数据存入,一个一个的显示。
在调用完之后需要使用customPlot->replot();将数据更新到坐标轴上去。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
big_anana
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区