tkinter: creating/attaching menubar to top level window

Christian Gollwitzer auriocus at gmx.de
Fri Jan 8 17:14:57 EST 2021


Am 08.01.21 um 22:47 schrieb Rich Shepard:
> I'm using Chapter 9 in Mark Roseman's "Modern Tkinter for Busy Python
> Developers" to learn how to write a top level menu. MWE code is attached.
> 
> Python3 tells me there's invalid syntax on line 42:
>      self.['menu'] = menubar # attach it to the top level window
>           ^
> yet that's the syntax he prints on page 84 (and has in the book's code
> supplement).

It is a simple typo, remove the dot.

	self['menu'] = menubar

It will then stop at the add_cascade, fix it like this:

  menubar.add_cascade(menu=self.menu_file, label='File')

and then it works,

> Why am I getting an invalid syntax error here?

Because the dot would indicate the access of an attribute. but no name 
follows. What it does here, instead, is indexing - the correct line is 
similar to setting a dict entry.

	Christian


More information about the Python-list mailing list