Tkinter и matplotlib: привязать к FigureCanvasTkAgg, чтобы извлечь позицию курсора на рисунке? - PullRequest
0 голосов
/ 27 мая 2020

Я хочу построить 2d-массив с помощью matplotlib, а затем извлечь позицию курсора, когда я нажимаю на построенное изображение. Вот минимальный рабочий пример того, как я бы это написал:

from tkinter import *
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib import pyplot as plt

def callback(event):
    print ("clicked at", event.x, event.y)

root = Tk()
mf = Frame()

figure = plt.Figure()
axes = figure.add_subplot(111)

canvas_wid = FigureCanvasTkAgg(figure, master=mf)
canvas_wid.get_tk_widget().pack()   

root.bind("<Button-1>", callback)
mf.pack()

root.mainloop()

Однако я не хочу иметь координаты относительно root, а в пределах рисунка . Когда я привязываю щелчок к mf, программа запускается, но щелчок не вызывает никакого ответа. Когда я привязываю его к виджету Canvas - что, насколько я понимаю, было бы именно тем, что я хочу, я получаю следующее сообщение об ошибке:

AttributeError: 'FigureCanvasTkAgg' object has no attribute 'bind'

По-видимому, Canvas не является виджетом, когда я определяю его с помощью FigureCanvasTKagg? Какая структура необходима для извлечения позиции курсора внутри фигуры?

Я новичок в программировании GUI в python и полагаю, что мне не хватает очень простой точки c. Я проверил справочное руководство для tkinter и matpotlib, прочитал много других вопросов, но не смог найти свою ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...