[Python-Dev] Binding problem

MRAB python at mrabarnett.plus.com
Wed Jan 15 04:40:13 CET 2014

On 2014-01-15 00:53, Rob Ward wrote:
> I apologise if I have come to the wrong place here, but 12hrs searching,
> plus experimenting,  on the WWW for advice on it has not yielded any
> successful advice to resolve the issue.
> I am am having trouble binding an Entry widget to <Return>
> Here is the snippet (butCol is a Frame widget to put buttons,labels and
> text entry down LHS)
> KS1=StringVar()
> KS1.set("Key is ??")
> butCol.ks1
> =Label(butCol,textvariable=KS1).grid(column=0,row=18,sticky=(N,W))
> myKey = [0,2,4,5,7,9,11] #Begin in the key of C
> KS2 =StringVar()
> KS2.set("C")
> butCol.ks2
> =Entry(butCol,width=20,textvariable=KS2).grid(column=0,row=19,sticky=(N,W))
> The above lines all render correctly, but will not trigger off "entry"
> of data at all on <Return>
> Adding the following line just crashes.
> butCol.ks2.bind("<Return>",chooseKey)
> I downloaded the Python 3 package from the recommended site last week to
> begin this project (it was previously working OK in Skulptor, but I was
> not prepared to develop it any further in that environment, though it
> was an excellent starting environment).  So I believe the Python
> language installed is up todate.  I have not previously installed Python
> so it should be "clean".
> If you could give any direct advice I would be very grateful or if you
> can direct me to your best "forum" site maybe I could use that.
> One overall observation that has frustrated me is how toi search for
> information that relates to *Python3* and the latest *tkinte*r modules.
> I kept finding old python or old Tkinter or combinations of both.
> Wrorking my way through this was very time consuming and rarely
> productive.  Is there any advice on how to get the "latest" information
> off the WWW?
> Cheers, Rob Ward
> PS In my state of eternal optimism I have attached the whole file :-)
> PPS I have done some OOP in the past but not keen to jump in at the moment.
I doubt it crashes. It's more likely that raises an exception 
complaining that 'None' doesn't have a 'bind' attribute.

That's because the .grid method returns None. (So the .pack method.)

Try this:

butCol.ks2 = Entry(butCol, width=20, textvariable=KS2)
butCol.ks2.grid(column=0, row=19, sticky=(N, W))

The same comment applies in a number of other places.

More information about the Python-Dev mailing list