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'
