在QcustomPlot中,给横纵坐标添加箭头的方法

//在末尾添加箭头   
customPlot->xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
customPlot->yAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);

怎么给图画虚线的方法

//设置虚线
QPen linesPen(Qt::red,,Qt::DashLine);
line = new QCPItemStraightLine(customPlot);
line->setPen(linesPen);
line->setClipToAxisRect(true);
line->point1->setCoords(,);
line->point2->setCoords(,);
//虚线平行于x轴
line->point1->setCoords(customPlot->xAxis->range().lower,0.2);
line->point2->setCoords(customPlot->xAxis->range().upper,0.2);

文本框的设置

//创建文本对象
QCPItemText *text = new QCPItemText(customPlot);
//设置文本坐标解析方式
text->position->setType(QCPItemPosition::ptAxisRectRatio);
//设置位置在矩形区域的位置
text->setPositionAlignment(Qt::AlignLeft | Qt::AlignBottom);
//设置位置
text->position->setCoords(0.1,0.90);
//设置文本内容
text->setText("你好");
text->setTextAlignment(Qt::AlignLeft);
//设置颜色
text->setColor(QColor(Qt::red));
//设置页边距
text->setPadding(QMargins(,1,1,1));

步长的设置

//创建对象
QSharedPointer<QCPAxisTickerFixed> intTicker( new QCPAxisTickerFixed );
//设置步长精度
intTicker->setTickStep(0.1);
//设置y轴步长
customPlot->yAxis->setTicker(intTicker);

设置坐标轴为矩形及坐标的刻度样式

ui->customPlot->xAxis2->setVisible(true);//x2轴可见
ui->customPlot->yAxis2->setVisible(true);//y2轴可见
ui->customPlot->xAxis2->setTicks(false);//x2刻度不可见
ui->customPlot->yAxis2->setTicks(false);//y2刻度不可见
ui->customPlot->yAxis->setSubTicks(false);//y1子刻度不可见

获取鼠标所在位置的坐标

int x_pos = e->pos().x();
int y_pos = e->pos().y();
qDebug()<<"event->pos()"<<e->pos();

鼠标坐标转化为CustomPlot内部坐标

float x_val = ui->customPlot->xAxis->pixelToCoord(x_pos);
float y_val = ui->customPlot->yAxis->pixelToCoord(y_pos);
qDebug()<<x_val<<y_val;

获取曲线的个数

int count = ui->customPlot->graphCount();

获取曲线上的点个数

int count = ui->customPlot->graph()->dataCount();

获取曲线上所有的点的x和y

QVector<double> y_data[ui->customPlot->graph()->dataCount()], x_data[ui->customPlot->graph()->dataCount()];

for (int i = ;i < ui->customPlot->graph(k)->dataCount();i++) {
float x = ui->customPlot->graph(k)->data()->at(i)->key;
float y = ui->customPlot->graph(k)->data()->at(i)->value;
x_data.append(x);
y_data.append(y);
}

QToolTip提示框

QToolTip::showText(mapToGlobal(e->pos()),QString(str),this);

QT QcustomPlot的使用(二)的更多相关文章

  1. QCustomplot使用分享(二) 源码解读

    一.头文件概述 从这篇文章开始,我们将正式的进入到QCustomPlot的实践学习中来,首先我们先来学习下QCustomPlot的类图,如果下载了QCustomPlot源码的同学可以自己去QCusto ...

  2. Qt DLL总结【二】-创建及调用QT的 DLL(三篇)good

    目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...

  3. Qt浅谈之二十七进程间通信之QtDBus

    一.简介 DBus的出现,使得Linux进程间通信更加便捷,不仅可以和用户空间应用程序进行通信,而且还可以和内核的程序进行通信,DBus使得Linux变得更加智能,更加具有交互性.        DB ...

  4. Qt浅谈之二十App自动重启及关闭子窗口

    一.简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用. 二.详解 1.Qt结构 int ma ...

  5. Qt浅谈之二十App自动重启及关闭子窗口(六种方法)

    一.简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用. 二.详解 1.Qt结构 int ma ...

  6. Qt之自定义托盘(二)

    上一篇文章讲述了自定义Qt托盘,不过不是使用QSystemTrayIcon这个类,而是我们自己完全自定义的一个类,我们只需要处理这个类的鼠标hover.鼠标左键点击.鼠标右键点击和鼠标左键双击,就可以 ...

  7. QT开发(十二)——QT事件处理机制

    一.QT事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下和松开 ...

  8. Qt浅谈之二十六图片滑动效果

    一.简介 博客中发现有作者写的仿360的代码,觉得其中图片滑动的效果很有意思,特提取其中的代码.并加上类似mac的画面移动的动画效果. 二.详解 1.代码一:界面滑动(QWidget) (1)slid ...

  9. Qt容器组件(二)之QWidgetStack、QMdiArea、QDockWidget

    QT中有九种容器组件,分别是组合框QGroupBox.滚动区QScrollArea.工具箱QToolBox.选项卡QTabWidget.控件栈QWidgetStack.框架QFrame.组件QWidg ...

随机推荐

  1. Win内核原理与实现学习笔记1-windows内核版本列表

  2. 1937:【06NOIP普及组】数列

    woc 太捞了简直捞的一匹 我居然会写博客 反正呀没有人看 随便写写喽

  3. openpyxl模块(excel操作)

    openpyxl模块介绍 openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读 ...

  4. Java并发指南5:JMM中的final关键字解析

    本文转载自互联网,侵删   与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的 ...

  5. Leetcode题目300.最长上升子序列(动态规划-中等)

    题目描述: 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度 ...

  6. java课后实验性问题3

    一 .生成随机数 import java.util.*; public class Test1 { public static void main(String[] args) { //建立一个生产随 ...

  7. 记录学习Linux遇到的问题

    shl@shl-tx:~$ ifconfig Command 'ifconfig' not found, but can be installed with: sudo apt install net ...

  8. java基于jcifs.smb实现远程发送文件到服务器

    1.服务器指定共享文件夹 1.1.验证服务器共享文件夹本地可以访问: 2.导入依赖的相关jar包         jcifs-1.3.**.jar: <dependency> <gr ...

  9. SQL-W3School-基础:SQL WHERE 语句

    ylbtech-SQL-W3School-基础:SQL WHERE 语句 1.返回顶部 1. WHERE 子句用于规定选择的标准. WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句 ...

  10. python 时间对比

    import datetimed1 = datetime.datetime.strptime('2015-03-05  17:41:20', '%Y-%m-%d %H:%M:%S')d2 = date ...