【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: 当鼠标指针在某一元素上移动就会触发改事件 下面这个例子的效果就是鼠标点击元素后,元素跟着 ...
随机推荐
- pj_0004_time_swap
#!/usr/bin/python # -*- coding: UTF-8 -*- import time def _get_strftime_( t ): return time.strft ...
- VS2019编译Qt4.8.7
下载4.8.7源码Index of /archive/qt/4.8/4.8.7 复制mkspecs\win32-msvc2015到mkspecs\win32-msvc2019 修改qmake.conf ...
- superset2.0.0 支持MaxCompute 时间颗粒
编译的时候需要在superset/superset/db_engine_specs以下路径增加一个 odps.py的文件 # Licensed to the Apache Software Found ...
- vue页面点击按钮增加和删除标签
1.在data()里定义一个空数组: conditions:[], 2.给数组一个容器,并且遍历数组 <div v-for="item in conditions">& ...
- lua-携程
function SayHey(mag) for i = 1 , 3 doprint(mag)coroutine.yield()end end --创建携程(协同) coFunc= coroutine ...
- vue 图片下载
getBase64Image(img) { var canvas = document.createElement("canvas"); canv ...
- [USACO12FEB]Overplanting S
洛咕 题意:在一个笛卡尔平面坐标系里(X轴向右是正方向,Y轴向上是正方向),有\(N(1<=N<=1000)\)个矩形,第\(i\)个矩形的左上角坐标是\((x1, y1)\),右下角坐标 ...
- VSCode搭建Go语言环境
一.安装go 1. 获取go安装包 https://golang.org/dl/ 2. 本地安装(省略) 3. 配置和环境变量 GO111MODULE 是否支持gomod GOROOT go安装的 ...
- outlook初用
以前一直用 Foxmail 收发邮件,由于公司用到 sharepoint 可以跟 outlook 绑定,试了下 outlook. 第一次用 outlook 以为也是跟 foxmail 一样简单配置一下 ...
- python--线性回归
首先先安装要用到的包:sklearn,顾名思义机器学习包 import matplotlib.pyplot as plt import numpy as np import pandas as pd ...