2017-08-15 86 views
1

所以我正在重新制作一个用python进行图形用户界面的数据分析,以前是在Matlab中完成的。我需要的一个功能是能够查看特定的数据图并选择该图的哪个部分是背景。我正在使用matplotlib来进行绘图,并且我正在尝试使用鼠标和键盘事件来处理此功能。Matplotlib嵌套事件

那么我的问题是,如何通过使用击键事件来指示程序寻找鼠标输入,从而“激活”一个事件,在我的情况下使用鼠标来选择背景数据。

绘制出我想什么:

按“Ctrl + B”进入后台选择模式 然后: 点击一次再次抢左端的X数据 点击抢最右边的X数据 无效点击输入

有什么建议吗?

仅供参考,这里有一点我的尝试; “ctrl + b”部分工作,然后在第一次点击后冻结。

def background(event): 
    print('button=%s, x=%d, y=%d, xdata=%f, ydata=%f' % (event.key, event.x, event.y, event.xdata, event.ydata)) 
    if event.key == "ctrl+b": 
     print("You clicked ctrl+b") 
     xbounds = [] 
     while len(xbounds) < 2: 
      cid = fig.canvas.mpl_connect('button_press_event', onclick) 

def onclick(event): 
    xbounds.append(event.x) 

回答

0

糟糕,自己想清楚了...... while语句无限期运行并导致python崩溃。切换时如果解决了问题。