Tkinter popup menu

Carl c.groner at gmail.com
Thu Aug 28 02:50:19 CEST 2008


"Chuckk Hubbard" <badmuthahubbard at gmail.com> writes:

> Right-click popup menu.  None of the options that come from the
> cascades can be selected with the mouse.  If you select a submenu with
> the mouse and then use the arrow keys and enter key to select an
> option, it works, but the menu remains on the canvas.  If you click
> the option with the mouse, the menu disappears but the function
> doesn't get called.
> Can someone tell me why?
>
> -Chuckk
>
> -- 
> http://www.badmuthahubbard.com

Try creating the "main" popup menu before the sub-menus, and when 
instantiating the sub-menus, pass the main menu as the "master"
instead of "self.myparent":

...snip code -----------------------------------------
        self.canvas.bind("<Button-3>",self.popup)

        self.menupopup = tk.Menu(self.myparent, tearoff=0)

        self.menupopup1 = tk.Menu(self.menupopup, tearoff=0)
        self.menupopup1.add_command(label="Test1", command=self.selected)
        self.menupopup1.add_command(label="Test2", command=self.selected)
        self.menupopup1.add_command(label="Test3", command=self.selected)
        self.menupopup2 = tk.Menu(self.menupopup, tearoff=0)
        self.menupopup2.add_command(label="Test1", command=self.selected)
        self.menupopup2.add_command(label="Test2", command=self.selected)
        self.menupopup2.add_command(label="Test3", command=self.selected)

#        self.menupopup = tk.Menu(self.myparent, tearoff=0)
        self.menupopup.add_cascade(label="Test1", menu=self.menupopup1)
        self.menupopup.add_cascade(label="Test2", menu=self.menupopup2)
...end code changes ----------------------------------

Hope that helps.
Carl.



More information about the Python-list mailing list