Dec-15-2019, 06:04 AM
In the below code mpl_connect works for the main window. But when a window using Toplevel() is called. mpl_connect doesn't work. Both codes are same. So whats the issue here?
This code is in the main window of tkinter
File "root.py", line 481, in new_window
fig.word_canvas.mpl_connect('button_press_event', window_click)
AttributeError: 'Figure' object has no attribute 'word_canvas'
This code is in the main window of tkinter
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,text_input)) input_button.pack(side = LEFT)When text_input button is called the below function is called
"Menu bar functionality starts here" def new_window(tuplex,tupley,text_input): def getboundary(event): # print(slider.get()) boundary = slider.get() therestx, theresty, thecoordinates = plottingthe_words_outside_a_boundary(dictionary, distance_list, boundary) sentences = returning_sentences_of_the_remaining_words(thecoordinates, sent_dic) print("x co ordinates outside the boundary") print(therestx) print("y co ordinates outside the boundary") print(theresty) print("the remaining sentences") print(sentences) # axes1.scatter(therestx,theresty, cmap='Paired') axes1.clear() axes1.scatter(therestx,theresty, cmap='Paired') word_canvas.draw() def window_click(event): print("Something") mapx,mapy = plottingdesiredword(labels, tuplex, tupley, text_input.get()) dictionary, distance_list = dictionaryofeuclideandistanceandtheircoordinates(labels, tuplex, tupley, text_input.get()) maximumdistance = max(distance_list) window = Tk.Toplevel() window.minsize(width=1080, height=900) fig, axes1 = plt.subplots() axes1.scatter(mapx, mapy, cmap='Paired') word_canvas = FigureCanvasTkAgg(fig, window) # word_canvas.bind("<Button-1>", window_click) fig.word_canvas.mpl_connect('button_press_event', window_click) plot_widget = word_canvas.get_tk_widget() plot_widget.pack(side = TOP, fill = BOTH, expand = True) help = Label(window, text="Slide to set boundary",font=("Helvetica", 16)) help.pack() slider = Scale(window,from_=0, to=maximumdistance, orient=HORIZONTAL,command=getboundary) slider.pack(fill = BOTH) # print(var.get()) word_canvas.draw()The following error is created -
File "root.py", line 481, in new_window
fig.word_canvas.mpl_connect('button_press_event', window_click)
AttributeError: 'Figure' object has no attribute 'word_canvas'