QT QcustomPlot的使用(二)
在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的使用(二)的更多相关文章
- QCustomplot使用分享(二) 源码解读
一.头文件概述 从这篇文章开始,我们将正式的进入到QCustomPlot的实践学习中来,首先我们先来学习下QCustomPlot的类图,如果下载了QCustomPlot源码的同学可以自己去QCusto ...
- Qt DLL总结【二】-创建及调用QT的 DLL(三篇)good
目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...
- Qt浅谈之二十七进程间通信之QtDBus
一.简介 DBus的出现,使得Linux进程间通信更加便捷,不仅可以和用户空间应用程序进行通信,而且还可以和内核的程序进行通信,DBus使得Linux变得更加智能,更加具有交互性. DB ...
- Qt浅谈之二十App自动重启及关闭子窗口
一.简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用. 二.详解 1.Qt结构 int ma ...
- Qt浅谈之二十App自动重启及关闭子窗口(六种方法)
一.简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用. 二.详解 1.Qt结构 int ma ...
- Qt之自定义托盘(二)
上一篇文章讲述了自定义Qt托盘,不过不是使用QSystemTrayIcon这个类,而是我们自己完全自定义的一个类,我们只需要处理这个类的鼠标hover.鼠标左键点击.鼠标右键点击和鼠标左键双击,就可以 ...
- QT开发(十二)——QT事件处理机制
一.QT事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下和松开 ...
- Qt浅谈之二十六图片滑动效果
一.简介 博客中发现有作者写的仿360的代码,觉得其中图片滑动的效果很有意思,特提取其中的代码.并加上类似mac的画面移动的动画效果. 二.详解 1.代码一:界面滑动(QWidget) (1)slid ...
- Qt容器组件(二)之QWidgetStack、QMdiArea、QDockWidget
QT中有九种容器组件,分别是组合框QGroupBox.滚动区QScrollArea.工具箱QToolBox.选项卡QTabWidget.控件栈QWidgetStack.框架QFrame.组件QWidg ...
随机推荐
- c++问题集合
1.对于程序未运行和运行后的代码段到底存储什么? 2.编写程序时为什么先申请变量后使用? 3.malloc本质到底分配了什么?谁赋给的? 4.程序在系统上是怎么运行起来的? 5.当我们双击一个程序运行 ...
- javascript--特权方法
在Javascript--闭包一节中我们讲解了闭包的作用域和作用域链的特性.了解到在外部一般是不可能访问到内部作用域中的变量的,然而通过闭包我们可以定义特权方法访问私有变量.下面先介绍块级作用域再介绍 ...
- Razor字符串处理
需要注意的是低版本是不支持C# 6语法中的string interpolation的 <label> @if (!string.IsNullOrEmpty(Model.BudgetValu ...
- Python 自学笔记(一)
1.打印函数 1-1.print()函数 1-1-1.引号的用法 一.单引号与双引号:直接输出 二.三引号:保留原来的格式 1-2.转义字符 转义字符是一种特殊的字符常量,在编程语言中,我们用转义字符 ...
- 如果你的电脑想升级并且支持m.2接口
便宜啊,赶紧入手. 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论
- linux安装后需要进行的一些基本设置
修改网络: 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-ens33 然后重启网络服务:systemctl restart network.servic ...
- kotlin泛型基本使用
class box<T> (t :T){ var vlaue =t } fun main(arg: Array<String>) { val box1:box<Int&g ...
- 使用Android Studio时你应该知道的一切配置和使用Genymotion模拟器运行程序
参考博客: 配置Android Studio: http://www.cnblogs.com/wi100sh/p/5653427.html Android Studio打包APK: http://bl ...
- Apache Jmeter教程(一) - 入门
一.下载Jmeter 登录官网Jmeter下载,得到压缩包jmeter-5.0.tgz,下载地址:http://jmeter.apache.org/download_jmeter.cgi. 二.安装 ...
- 找到数组中频次大于1/k的数
Majority Number III 给定一个数组(长度为L),找到所有出现频次大于1/k的数字. 我们主要使用摩尔投票法(Voting Algorithm)结合Map的数据结构解决此问题.其时间复 ...