我希望在等待用户按下回车时暂停我的python脚本 - 而焦点在于matplotlib图。
我尝试了以下代码,但是当脚本进入wile循环时,脚本会绑定事件处理。这样用户就无法绘制矩形。
class DrawRectangle:
def __init__(self, image):
self.waiting_for_entry = True
'''
Event handling that lets user draw a rectangle on an image.
when the user is done drawing they press "enter" to disconnect the canvas
'''
def on_key_press(self, event):
if event.key == 'enter':
'''
disconnect event handling
'''
self.waiting_for_entry = False
def return_image_inside(self):
'''
Return the portion of the image inclosed in the rectangle
'''
if __name__ == "__main__":
image = import_some_image() # import an image
image_plot = plt.imshow(image)
selector = DrawRectangle(image_plot)
while selector.waiting_for_entry:
pass
working_data = selector.return_image_inside()
'''
do stuff with selected image
'''
暂停程序
print "press enter to continue:"
raw_input()
是否有效,但需要用户将焦点返回到终端屏幕,然后按Enter键。
有关如何在matplotlib中注册事件之前暂停脚本的任何建议吗?
答案 0 :(得分:0)
我认为你必须实现一个简单的(单一窗口)GUI,并在其中包含一个matplotlib图形后端。
你可能很幸运:matplotlib examples提供了一个很好的例子。请注意,在运行示例时,如何捕获按键并将其打印到终端,还会将其转发到matplotlib.backend_bases.key_press_handler
。