在开发中有一个需求:对生成的一条线进行拖拽。
我将这个方法实现在线所在的类里,这个过程中需要判断鼠标是否点击在当前线上,从而实现拖拽。
实现代码如下:
# 点击事件
def on_press(self,event):
if event.inaxes != self.ax:
return
# 只有鼠标左键才能进行拖动
if event.button is MouseButton.LEFT:
# 判断点击的位置是否在线上
if self.line.contains(event):
self.drag_x_datum_line = True
但是经过测试,无论在没在线上点击鼠标,得到的结果都是True
后来经过查资料得知,正确的写法应为:文章来源:https://www.toymoban.com/news/detail-640992.html
# 点击事件
def on_press(self,event):
if event.inaxes != self.ax:
return
# 只有鼠标左键才能进行拖动
if event.button is MouseButton.LEFT:
# 判断点击的位置是否在标线上
if self.line.contains(event)[0]:
self.drag_x_datum_line = True
这是因为Line2D.contains(event)方法返回的是一个包含两个元素的元组,第一个元素是一个布尔值,第二个元素是一个字典,包含点的更多信息。文章来源地址https://www.toymoban.com/news/detail-640992.html
到了这里,关于matplotlib 判断鼠标是否点击在当前线上的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!