Some basic questions about Tkinter (probably v easy for experts!)
Martyn Quick
mrq at for.mat.bham.ac.uk
Wed Feb 7 09:02:43 EST 2001
On Wed, 7 Feb 2001, Fredrik Lundh wrote:
> have you read the introduction document? the first chapter
> seems to answer your questions:
I've tried to read the introduction document, but I found it rather
confusing, I'm afraid. I'm very new to this game and the use of lowercase
and uppercase variants of the same English word to denote almost the same
thing caused me problems. It is to avoid the confusion that I introduced
aardvark and armadillo as the names for my widgets below.
> > (4) Will the following correctly add a menu to my aardvark object?
>
> short answer: almost.
>
> > from sys import exit
> > armadillo = Menu(aardvark)
>
> this creates a menu component instance.
>
> > armadillo.add_cascade(label="File")
>
> this adds a submenu to the admadillo menubar. but you
> didn't pass in the submenu instance, so there's nothing to
> display when the user clicks on "File"...
>
> try this instead:
>
> filemenu = Menu(armadillo) # create a submenu
> armadillo.add_cascade(label="File", menu=filemenu)
Hold it - is "filemenu" a user defined name or is it built into Tkinter?
Would the following work equally well?
dongle = Menu(armadillo)
armadillo.add_cascade(label="File", menu=dongle)
> > armadillo.add_command(lable="Exit", command=exit)
>
> if you fix the typo, this adds a command item to the armadillo
> menubar. when that item is selected, Tkinter calls sys.exit.
Oh good. (And "Oops!" about the typo.)
> if you want to add it to the file menu instead of the armadillo
> menubar, try this:
>
> filemenu.add_command(label="Exit", command=exit)
>
> finally, you need to attach the menu to your window:
>
> aardvark.config(menu=armadillo)
What *exactly* does config do?
The Introduction document (p26) says "We use the config method to attach
it to the root window". But I couldn't find anywhere telling me what the
config method was.
Furthermore in the example on p26 of the document it has the following
code:
menu = Menu(root)
root.config(menu=menu)
But what happens if I call the menu bar on my root "aardvark"?
Say
aardvark = Menu(root)
Does the next line contain "menu=aardvark", "aardvark=menu", or
"aardvark=aardvark"?
>
> > If this isn't right - what is right, and more importantly *why* is it
> > right?
>
> http://www.pythonware.com/library/tkinter/introduction/x953-menus.htm
Ah yes - this is precisely the printed page that I have in front of me
that I'm not really understanding.
A related question is the Second Tkinter Program in that document (Hello,
Again). The command use to quite is frame.quit . Why is this used
instead of sys.exit() ? Am I right in thinking that frame is the
user defined name for the Frame, so if I wrote
aardvark = Frame(master)
I would use command = aardvark.quit
Thanks for the previous reply!
Martyn
--------------------------------------------------------
Dr. Martyn Quick (Research Fellow in Pure Mathematics)
University of Birmingham, Edgbaston, Birmingham, UK.
http://www.mat.bham.ac.uk/M.R.Quick
More information about the Python-list
mailing list