[Tkinter-discuss] Cascade menu issue
Jeff Epler
jepler at unpythonic.net
Wed Aug 23 04:28:32 CEST 2006
The "activate_cascade" code seems to accomplish what you want. I tested it
only on Ubuntu 5.10, so your mileage may vary with different Linux
distributions and Tk versions.
Jeff
# ----------------------------------------------------------------------
import Tkinter
app = Tkinter.Tk()
menubar = Tkinter.Menu(app)
app.configure(menu=menubar)
# ----------------------------------------------------------------------
# Here's the important bit
activate_cascade = """\
if {[%W cget -type] != {menubar} && [%W type active] == {cascade}} {
%W postcascade active
}
"""
app.bind_class("Menu", "<<MenuSelect>>", activate_cascade)
# ----------------------------------------------------------------------
# Some testing code
filemenu = Tkinter.Menu(menubar)
menubar.add_cascade(label="File", menu=filemenu)
newmenu = Tkinter.Menu(filemenu)
filemenu.add_cascade(label="New", menu=newmenu)
newmenu.add_command(label="Text")
newmenu.add_command(label="Image")
newmenu.add_command(label="Folder")
filemenu.add_command(label="Quit", command=app.destroy)
app.mainloop()
# ----------------------------------------------------------------------
More information about the Tkinter-discuss
mailing list