所以我在主窗口中实现了这一点。而且一切正常。每当调用input_button时,都会创建一个新窗口
canvas = FigureCanvasTkAgg(f,self)
f.canvas.mpl_connect('button_press_event',on_click)
f.canvas.mpl_connect('button_release_event',off_click)
canvas.draw()
toolbar = NavigationToolbar2Tk(canvas,self)
toolbar.update()
toolbar.pack()
canvas.get_tk_widget().pack(side = BOTTOM,fill = BOTH,expand = True)
text_input = Entry(self)
text_input.pack(side = LEFT)
input_button=Button(self,height=1,width=10,text="Find",command=lambda: new_window(x,y,self))
input_button.pack(side = LEFT)
下面的代码在new_window()函数中。但是每当我在此处打开Toplevel()窗口时,Matplotlib事件似乎都无法正常工作。
window = Toplevel()
window.minsize(width=1080,height=900)
fig,axes1 = plt.subplots()
axes1.scatter(mapx,mapy,cmap='Paired')
word_canvas = FigureCanvasTkAgg(fig,window)
fig.word_canvas.mpl_connect('button_press_event',window_click)
plot_widget = word_canvas.get_tk_widget()
plot_widget.pack(side = TOP,expand = True)
它给出错误-AttributeError:'Figure'对象没有属性'word_canvas'。 我在这里做错了什么?由于两个代码相同。为什么一种有效,一种无效?