У меня есть простой цикл построения данных, считываемых из папки.Он зацикливается навсегда, чтобы обновить графики, и я хочу завершить программу, когда нажимаю ESC.До сих пор я писал
fig = plt.figure()
plt.axes()
while True:
... # loop over data and plot
plt.draw()
plt.waitforbuttonpress(0)
plt.cla()
Если я закрою фигуру нажатием на значок X, программа завершится с ошибкой.Я могу избежать ошибки, выполнив
try:
plt.waitforbuttonpress(0)
except:
break
Но я все же хотел бы иметь возможность завершить программу, нажав ESC на графике.Кроме того, если я закрою график с помощью CTRL + W, график снова появится.Я попытался добавить обнаружение событий, например
def parse_esc(event):
if event.key == 'press escape':
sys.exit(0)
fig.canvas.mpl_connect('key_press_event', parse_esc)
, но оно не обнаруживает ESC.Я попытался использовать close_event
вместо key_press_event
, но sys.exit(0)
выдает следующую ошибку
while executing
"140506996271368filter_destroy 836 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 0 ?? ?? .140506996230464 17 ?? ?? ??"
invoked from within
"if {"[140506996271368filter_destroy 836 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 0 ?? ?? .140506996230464 17 ?? ?? ??]" == "break"} break"
(command bound to event)
Я также хотел бы удалить цикл и обновить график только в случае обнаружения R, но это не такважно.
Любая помощь приветствуется, спасибо.