【pyqtgraph】pyqtgraph可移动竖线LineSegmentROI的拖拽事件相关
情景
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里有关于位置的属性,在尝试中出现问题,遂直接获取鼠标位置) 
												
											【pyqtgraph】pyqtgraph可移动竖线LineSegmentROI的拖拽事件相关的更多相关文章
- html5拖拽事件 xhr2 实现文件上传 含进度条
		
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
 - H5原生拖拽事件
		
使用原生js实现简单的拖拽事件 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
 - HTML5 02.     多媒体控件、拖拽事件、历史记录、web存储、应用程序缓存、地理定位、网络状态
		
多媒体 video:是行内块(text-align: center; 对行内块适用) <figure></figure>: 多媒体标签 : <figcaption> ...
 - Duilib嵌入CEF禁止浏览器响应拖拽事件
		
转载:http://blog.csdn.net/liuyan20092009/article/details/53819473 转载:https://blog.csdn.net/u012778714( ...
 - Android Launcher拖拽事件详解【android4.0--Launcher系列二】
		
AndroidICS4.0版本的launcher拖 拽的流程,基本和2.3的相似.就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类.等等.4.0的改变有一些,但是不是特别大.这个月一 直 ...
 - JS  Event 鼠标拖拽事件
		
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
 - 拖拽事件--select外边框拖拽
		
地图上面的搜索框要可拖拽 但是搜索框是有点击事件的,点击显隐下拉菜单,如果拖拽的事件源选择select框的话,会有样式(十字拖动符cursor:move与selelt默认点击的箭头)冲突 思索良久,就 ...
 - IOS 拖拽事件(手势识别)
		
@interface NJViewController () @property (weak, nonatomic) IBOutlet UIView *customView; @end @implem ...
 - 完美实现鼠标拖拽事件,解决各种小bug,基于jquery
		
鼠标拖拽事件是web中使用频率极高的事件,之前写过的代码包括网上的代码,总存在各种各样的问题,包括拖拽体验差,松开鼠标后拖拽效果仍存在以及代码冗余过大等 本次我才用jQuery实现一个尽可能高效的拖拽 ...
 - HTML5深入学习之鼠标跟随,拖拽事件
		
知识点(鼠标跟随): mousedown: 当用户用鼠标点击在某一元素上就会触发该事件 mouseover: 当鼠标指针在某一元素上移动就会触发改事件 下面这个例子的效果就是鼠标点击元素后,元素跟着 ...
 
随机推荐
- 多线程问题sleep与wait
			
涉及到的三个方法:wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器notify():一旦执行此方法,就会唤醒被wait的一个线程.如果有多个线程被wait,就唤醒优先级高:not ...
 - cgroup与docker
			
1.使用 cgroup namespace 需要内核开启 CONFIG_CGROUPS 选项.可通过以下方式验证: 1 root@container:~/namespace_test# grep CO ...
 - WebSocket 使用记录
			
WebSocket 主要解决的问题是 后端数据更新主动像前端推送数据所需依赖<dependency> <groupId>org.springframework.boot< ...
 - 国产低功耗Soc蓝牙语音遥控器芯片HS6621 /OM6621
			
随着物联网技术不断发展,家用电器往智能化方向持续迭代,使用红外遥控器这种传统的互动方式已经满足不了实际的使用需求,蓝牙语音遥控器作为人机交互新载体,逐渐取代传统红外遥控器成为家居设备的标配.相比于传统 ...
 - Qt-设置背景色
			
https://blog.csdn.net/qq_43793182/article/details/121980724?ops_request_misc=&request_id=&bi ...
 - vi中将小写转换成大写字母
			
VI阅读模式下连续按gUW可以将小写转换成大写
 - mysql in和find_in_set
			
一.查询包含","的列 1.如果查询条件包含单引号 用in 如:select * from t_test where names in ('李红'); 只能查询出names列中值为 ...
 - Windows11 微软提供三种路径 安装程序应用
			
Windows11 微软提供三种路径 安装程序应用
 - C# Linq将DataTable中的某列转换成数组或者List
			
// 获取到的数据 DataTable picDt = GetPdmPoroductModelPictureData(productModelCode); // 将productCode列转数组 st ...
 - Redis缓存之spring boot 部署
			
一.环境准备工作 # 1.JDK 安装与环境变量# 下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-8u102-linux-x64.tar.gz [root@localhost data ...