情景

Python+PyQt+pyqtgraph读取数据绘图,并在图像上添加了LineSegmentROI带handle的竖线(hanlde是为了RectROI的拖动),现要实现竖线可以直接拖动,并在拖动后恢复到原来的纵方向位置,只改变拖动的横方向位置。

实现

生成竖线

官方文档是这样写的:

LineSegmentROI(positions=(None, None), pos=None, handles=(None, None), **args)

参数什么的就不具体说了,生成一条可移动的直线只需要传入起点终点坐标和movable参数即可。

import pyqtgraph as pg
self.line = pg.LineSegmentROI(([0, 0], [0, 1), movable=True)

拖拽事件

# 取消handle的拖拽事件
for handle in self.line.getHandles():
handle.mouseDragEvent = self.disable_drag_event() def disable_drag_event(self, ev):
return # 重写竖线的拖拽事件
line.mouseDragEvent = new_drag_event() def new_drag_event(self, ev):
self.line.mouseDragHandler.mouseDragEvent(ev) # 默认事件,需要重新实现
finish = ev.finish # 判断拖拽结束
pos = self.get_mouse_pos() # 获取鼠标当前位置(ev里有关于位置的属性,在尝试中出现问题,遂直接获取鼠标位置)

最新文章

  1. UVALive3902 Network[贪心 DFS&&BFS]
  2. 非对称加密算法——RSA
  3. CentOS7:安装Puppet
  4. 关于tomcat小知识
  5. HTML 表单 选择器
  6. json jackson
  7. 如何在Apache中建立一个新端口
  8. xml技术DTD约束定义
  9. 查看Linux下网卡状态或 是否连接(转)
  10. 如何解决eclipse上的Android程序“Please ensure that adb is correctly located at 'D:\eclipse\sdk\platform-tools\adb.exe' and can be executed.”小问题?
  11. NET中级课--文件,流,序列化1
  12. OC本学习笔记Foundation框架NSString与NSMutableString
  13. 堆VS栈
  14. java web Servlet学习笔记-2 请求重定向和请求转发的区别
  15. Rails6使用tailwind CSS
  16. I/O 模型
  17. mac burp suite https证书安装
  18. RocketMQ在windows环境下的安装
  19. 洛谷P1789【Mc生存】插火把 题解
  20. [置顶] Android 关于BottomDialogSheet 与Layout擦出爱的火花?

热门文章

  1. 【Java学习Day02】基本的Dos命令
  2. springsecurity maven 打包后,404错误。maven 打包后,加载内置的xml文件
  3. Devexpress WPF ChartControl 多Y轴
  4. centos 更新git
  5. https原理(三)双向实践(curl)
  6. centos6.5升级python3.6并安装boto3模块
  7. win7安装AutoCAD2019
  8. VSCode搭建Go语言环境
  9. keepalived检测UDP端口
  10. Redis-shake工具 [ 自建redis集群->云redis主从 ]