有时需要在图表中使用鼠标动态的显示某个点的数据值,Series中提供了一些相关鼠标事件的信号,此文就记录使用hovered(point point, bool state)信号实现十字交叉定位。效果图:

hovered(point point, bool state)信号发出当前鼠标所处的图表坐标Point(x,y),x和y分别代表了Series中该点处的值。借助ChartView中的函数mapToPosition(point value, AbstractSeries series)可返回得到当前鼠标于ChartView的相对位置绘制一纵一横两条交叉线。

如果像我的效果图中那样显示的十字线仅仅只在图表区域内显示,那么可以使用chartview中的属性plotArea获得绘图区域的位置大小即可。

数据结果在ToolTip中进行显示(注意:ToolTip的parent必须为Item,因此ToolTip在ChartView中初始化或者在Series中对其指定父类),以下代码只贴出了重要的核心内容,并非QML全部,其余内容可自行添加。

ToolTip{id:toolTipdelay: 4font.family: "微软雅黑"font.bold: truefont.pointSize: 13}LineSeries {id:lineSeriesname: "LineSeries"axisX: myDateTimeAxisaxisY:myAxisYcolor: "#00ffff"width: 3onHovered: {var chartPosition = chartView.mapToPosition(point,lineSeries)myCanvas.xx = chartPosition.xmyCanvas.yy = chartPosition.ytoolTip.visible = statetoolTip.text = "X:"+point.x+"  Y:"+point.ytoolTip.x = chartPosition.x+10toolTip.y = chartPosition.y-40var d = new Date()myCanvas.requestPaint()}}Canvas{id:myCanvasanchors.fill: chartViewproperty double xx: 0property double yy: 0onPaint: {if(xx+yy>0){var ctx = getContext("2d")ctx.clearRect(0,0,parent.width,parent.height)ctx.strokeStyle = '#ccf48993'ctx.lineWidth = 3ctx.beginPath()ctx.moveTo(xx,chartView.plotArea.y)ctx.lineTo(xx,chartView.plotArea.height+chartView.plotArea.y)ctx.stroke()ctx.beginPath()ctx.moveTo(chartView.plotArea.x,yy)ctx.lineTo(chartView.plotArea.x+chartView.plotArea.width,yy)ctx.stroke()}}}

QML charts 鼠标动态跟随数值(十字交叉定位)相关推荐

  1. 来自CCNet的一种创新:语义分割中的十字交叉视觉注意力

    来自CCNet的一种创新:语义分割中的十字交叉视觉注意力 写在文章开头 看个大概 引入 CCNet之道 整体架构 十字交叉注意力 循环--RCCA 优化类别一致性损失 CCNet效果一览 写在文章末尾 ...

  2. 【码上实战】【立体匹配系列】经典AD-Census: (4)十字交叉域代价聚合

    抱歉让大家久等了! 下载完整源码,点击进入: https://github.com/ethan-li-coding/AD-Census 欢迎同学们在Github项目里讨论! 上篇代价计算中,带大家深入 ...

  3. excel表格行列显示十字定位_Excel行列十字交叉高亮显示

    Excel 行列十字交叉高亮显示 Excel 行列十字交叉高亮显示! Excel 中数据量比较大时, 有时候容易看花钱,行号列号看错,这个时候,可以使用简 单的 VBA 语句对选中单元格的行列进行高亮 ...

  4. 十字交叉链表c语言,C语言课程设计报告—十字交叉链表的应用.doc

    C语言课程设计报告-十字交叉链表的应用 PAGE \* MERGEFORMAT 13 华中科技大学计算机科学与技术学院 C语言程序设计课程设计实验报告 题目:水产品养殖信息管理系统 专业: 计算机科学 ...

  5. 基于SVG的鼠标动态绘制矩形和动态放置图片

    web开发中经常会遇到需要在图片上或画布上使用鼠标动态绘制图形,或者用图形或者小图片标注位置的需求,这里选择使用svg来实现. 一.在html中添加svg标签,并在其中放置图片(做背景) <sv ...

  6. 77_Qt_承接【75】解决表格tableWidget添加行、列,删除行、列,以及下拉框comboBox动态跟随变化问题【难点:removeItem、addItem所需参数不同】

    下拉框comboBox动态跟随行.列,添加.删除变化功能: void myMainWindow::add_row() {int row = ui->tableWidget->current ...

  7. SUMO(test):简单建立十字交叉路口网络(1)

    所需文件:.nod.xml文件, .edg.xml文件, .typ.xml文件, .con.xml文件 其代码如下: 打开start-command-line.bat键入cd/d f:\sumo-wi ...

  8. mac鼠标指针跟随很慢的问题

    最近买了个苹果鼠标2代,使用时感觉鼠标指针跟随太慢,在系统偏好设置里面将鼠标跟随速度调到最大,还是感觉很慢. 后来在网上找到了一个通过命令行改全局配置的方式调快跟随速度.具体方法如下: 可以先查看一下 ...

  9. 【mac】mac鼠标指针跟随很慢的问题

    使用时感觉鼠标指针跟随太慢,在系统偏好设置里面将鼠标跟随速度调到最大,还是感觉很慢. 后来在网上找到了一个通过命令行改全局配置的方式调快跟随速度.具体方法如下: 可以先查看一下当前值 打开终端,输入命 ...

最新文章

  1. C++:不用申请变量交换两个变量的值
  2. OpenCV之imgproc 模块. 图像处理(3)霍夫线变换 霍夫圆变换 Remapping 重映射 仿射变换
  3. nas servers
  4. 二模网络_初二 八下英语 教学课件、作业课件、教案等(网络资源)
  5. microstation添加txt文件_C开发实战-文件操作
  6. 从原理上搞定编码-- Base64编码
  7. Goroutine(协程)为何能处理大并发?
  8. python selenium在编写过程中遇到的问题记录
  9. 当内存512遇上Access数据库600M,IO磁盘受伤了
  10. 51单片机——蓝牙远程点灯
  11. 鼠标右键中新建选项消失
  12. deepin更新启动项_Deepin修复启动项菜单---grub2启动修复
  13. windows和linux系统下数据传输工具——tftpd32使用说明
  14. 声明一个长方形类,属性有长和宽;操作有赋值、计算长方形的周长和面积、输出信息等,要求定义构造函数(缺省值为10)和析构函数。
  15. 如何设计空白页面,体验更好!
  16. 中国最美丽的地方排行榜国家地理
  17. C++STL容器总结
  18. 《中国垒球》:棍网球委员会·垒球联盟
  19. ReentrantLock 到底锁定了哪个对象了?
  20. GPU初始化和启动流程(r600)

热门文章

  1. 2021年高压电工复审考试及高压电工作业考试题库
  2. PHP 扩展 mysqli 的基本用法
  3. Geek 02 学习记录 (实现一个最简单内核)
  4. 自定义浏览器滚动条的样式,打造属于你的滚动条风格
  5. 跨境电商运营培训:亚马逊店铺的运营模式
  6. 牛逼了!仅需一行代码将Python程序转换为图形界面应用
  7. CSS 媒体查询@media 适配 iPhone 6/7/8、iPhone 6/7/8 Plus、 iPhone X和ipad横竖屏
  8. 博士申请 | 香港中文大学(深圳)张大鹏教授招收计算机视觉方向博士/博后/RA...
  9. Go 全套学习路线图
  10. BIM云平台哪个好一点?