Как говорит @ ThomasKühn, ответ состоит в том, чтобы создать программную версию.Есть несколько способов сделать это, и решение, вероятно, зависит от вашего приложения (используете ли вы графический интерфейс, какой бэкэнд и т. Д.). Чтобы быть как можно более независимым, я реализовал свое решение, используя одноразовый поток из резьбового модуля .
import threading
import matplotlib.pyplot as plt
DEBOUNCE_DUR = 0.25
t = None
def on_press(event):
global t
if t is None:
t = threading.Timer(DEBOUNCE_DUR, on_singleclick, [event])
t.start()
if event.dblclick:
t.cancel()
on_dblclick(event)
def on_dblclick(event):
global t
print("You double-clicked", event.button, event.xdata, event.ydata)
t = None
def on_singleclick(event):
global t
print("You single-clicked", event.button, event.xdata, event.ydata)
t = None
fig, ax = plt.subplots()
cid = fig.canvas.mpl_connect('button_press_event', on_press)
plt.show()