Python Forum
[Tkinter] Mouse click event not working on multiple tkinter window - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: GUI (https://python-forum.io/forum-10.html)
+--- Thread: [Tkinter] Mouse click event not working on multiple tkinter window (/thread-23186.html)



Mouse click event not working on multiple tkinter window - evrydaywannabe - Dec-15-2019

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
        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'


RE: Mouse click event not working on multiple tkinter window - Larz60+ - Dec-15-2019

please show all each script in its own single code window so that it can be run
Thank you


RE: Mouse click event not working on multiple tkinter window - woooee - Dec-16-2019

And explain what "doesn't work" means.