Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Tkinter bug in Entry widgets on OS X
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  9 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Arnaud Delobelle  
View profile  
 More options Aug 31 2012, 6:18 am
Newsgroups: comp.lang.python
From: Arnaud Delobelle <arno...@gmail.com>
Date: Fri, 31 Aug 2012 11:18:36 +0100
Local: Fri, Aug 31 2012 6:18 am
Subject: Tkinter bug in Entry widgets on OS X
Hi all,

I'm writing a small GUI on OS X (v. 10.7.4) using Tkinter.  I'm using
stock Python.  It mostly works fine but there is a bug in Entry
widgets: if and Entry widget has focus and I press the UP arrow, a
"\uf700" gets inserted in the widget.  If I press the DOWN arrow, a
"\uf701" gets inserted.

I'm very inexperienced with Tkinter (I've never used it before).  All
I'm looking for is a workaround, i.e. a way to somehow suppress that
output.

Thanks in advance,

--
Arnaud


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kevin Walzer  
View profile  
 More options Aug 31 2012, 10:25 am
Newsgroups: comp.lang.python
From: Kevin Walzer <k...@codebykevin.com>
Date: Fri, 31 Aug 2012 10:25:27 -0400
Local: Fri, Aug 31 2012 10:25 am
Subject: Re: Tkinter bug in Entry widgets on OS X
On 8/31/12 6:18 AM, Arnaud Delobelle wrote:

> I'm very inexperienced with Tkinter (I've never used it before).  All
> I'm looking for is a workaround, i.e. a way to somehow suppress that
> output.

What are you trying to do? Navigate the focus to another widget? You
should use the tab bar for that, not the arrow key. The entry widget is
a single-line widget, and doesn't have up/down as the text widget does.

--
Kevin Walzer
Code by Kevin
http://www.codebykevin.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arnaud Delobelle  
View profile  
 More options Aug 31 2012, 11:18 am
Newsgroups: comp.lang.python
From: Arnaud Delobelle <arno...@gmail.com>
Date: Fri, 31 Aug 2012 16:18:12 +0100
Local: Fri, Aug 31 2012 11:18 am
Subject: Re: Tkinter bug in Entry widgets on OS X
On 31 August 2012 15:25, Kevin Walzer <k...@codebykevin.com> wrote:

> On 8/31/12 6:18 AM, Arnaud Delobelle wrote:

>> I'm very inexperienced with Tkinter (I've never used it before).  All
>> I'm looking for is a workaround, i.e. a way to somehow suppress that
>> output.

> What are you trying to do? Navigate the focus to another widget? You should
> use the tab bar for that, not the arrow key. The entry widget is a
> single-line widget, and doesn't have up/down as the text widget does.

I'm not trying to do anything.  When a user presses the UP or DOWN
arrow, then a strange character is inserted in the Entry box.  I'd
rather nothing happened.

--
Arnaud


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kevin Walzer  
View profile  
 More options Aug 31 2012, 11:21 am
Newsgroups: comp.lang.python
From: Kevin Walzer <k...@codebykevin.com>
Date: Fri, 31 Aug 2012 11:21:14 -0400
Local: Fri, Aug 31 2012 11:21 am
Subject: Re: Tkinter bug in Entry widgets on OS X
On 8/31/12 11:18 AM, Arnaud Delobelle wrote:

> I'm not trying to do anything.  When a user presses the UP or DOWN
> arrow, then a strange character is inserted in the Entry box.  I'd
> rather nothing happened.

Why is the user doing that? If they are trying to navigate to a
different part of the interface, they need to use the tab key, not the
arrow key. It's not a multi-line text widget and shouldn't be expected
to work like one.

--
Kevin Walzer
Code by Kevin
http://www.codebykevin.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Alister  
View profile  
 More options Aug 31 2012, 11:41 am
Newsgroups: comp.lang.python
From: Alister <alister.w...@ntlworld.com>
Date: Fri, 31 Aug 2012 15:41:01 GMT
Local: Fri, Aug 31 2012 11:41 am
Subject: Re: Tkinter bug in Entry widgets on OS X

On Fri, 31 Aug 2012 11:21:14 -0400, Kevin Walzer wrote:
> On 8/31/12 11:18 AM, Arnaud Delobelle wrote:

>> I'm not trying to do anything.  When a user presses the UP or DOWN
>> arrow, then a strange character is inserted in the Entry box.  I'd
>> rather nothing happened.

> Why is the user doing that? If they are trying to navigate to a
> different part of the interface, they need to use the tab key, not the
> arrow key. It's not a multi-line text widget and shouldn't be expected
> to work like one.

I agree that it is unexpected in a single line entry box but isn't the 1st
rule of user interface design to assume the user is a moron & will do
things they are not supposed to do?

Therefore invalid inputs should be handled gracefully (not just insert
random characters) which is what I think the original poster is
suggesting.

--
Walk softly and carry a megawatt laser.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arnaud Delobelle  
View profile  
 More options Aug 31 2012, 3:05 pm
Newsgroups: comp.lang.python
From: Arnaud Delobelle <arno...@gmail.com>
Date: Fri, 31 Aug 2012 20:05:14 +0100
Local: Fri, Aug 31 2012 3:05 pm
Subject: Re: Tkinter bug in Entry widgets on OS X
On 31 August 2012 16:41, Alister <alister.w...@ntlworld.com> wrote:

> On Fri, 31 Aug 2012 11:21:14 -0400, Kevin Walzer wrote:

>> On 8/31/12 11:18 AM, Arnaud Delobelle wrote:

>>> I'm not trying to do anything.  When a user presses the UP or DOWN
>>> arrow, then a strange character is inserted in the Entry box.  I'd
>>> rather nothing happened.

>> Why is the user doing that? If they are trying to navigate to a
>> different part of the interface, they need to use the tab key, not the
>> arrow key. It's not a multi-line text widget and shouldn't be expected
>> to work like one.

So you make software that only behaves well when the user does what
they're supposed to do?

> I agree that it is unexpected in a single line entry box but isn't the 1st
> rule of user interface design to assume the user is a moron & will do
> things they are not supposed to do?

> Therefore invalid inputs should be handled gracefully (not just insert
> random characters) which is what I think the original poster is
> suggesting.

Indeed.

--
Arnaud


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Peter Otten  
View profile  
 More options Sep 1 2012, 6:31 am
Newsgroups: comp.lang.python
From: Peter Otten <__pete...@web.de>
Date: Sat, 01 Sep 2012 12:30:43 +0200
Local: Sat, Sep 1 2012 6:30 am
Subject: Re: Tkinter bug in Entry widgets on OS X

Untested as I have no Mac:

import Tkinter as tk

def suppress(event):
    if event.keycode in {111, 116}:
        print "ignoring", event.keycode
        return "break"
    print event.keycode, "accepted"

root = tk.Tk()
entry = tk.Entry(root)
entry.bind("<Key>", suppress)
entry.pack()

root.mainloop()

> I've struggled to find good tkinter
> docs on the web.

For my (basic) needs I keep coming back to

http://infohost.nmt.edu/tcc/help/pubs/tkinter/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arnaud Delobelle  
View profile  
 More options Sep 1 2012, 8:57 am
Newsgroups: comp.lang.python
From: Arnaud Delobelle <arno...@gmail.com>
Date: Sat, 1 Sep 2012 13:56:32 +0100
Local: Sat, Sep 1 2012 8:56 am
Subject: Re: Tkinter bug in Entry widgets on OS X
On 1 September 2012 11:30, Peter Otten <__pete...@web.de> wrote:

This works fine!

return "break" is the piece of knowledge that I was missing. Thanks a
lot!  In fact I lied a bit in my original message - I do use the UP
and DOWN arrows on one Entry widget for navigating its command
history. To do this I was binding the "<Up>" and "<Down>" events to a
function, which simply has to return "break" to work around the bug.
On other Entry widgets, I just bind "<Up>" and "<Down>" to a suppress
function which simply returns "break".

>> I've struggled to find good tkinter
>> docs on the web.

> For my (basic) needs I keep coming back to

> http://infohost.nmt.edu/tcc/help/pubs/tkinter/

Thanks for the link.  I was using the docs on effbot which are nice
but probably incomplete (and old).

I guess I should flag up this bug but I don't even know if it's a
Python or Tk problem and have little time or expertise to investigate.

--
Arnaud


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Russell E. Owen  
View profile  
 More options Sep 13 2012, 4:34 pm
Newsgroups: comp.lang.python
From: "Russell E. Owen" <ro...@uw.edu>
Date: Thu, 13 Sep 2012 13:33:20 -0700
Local: Thurs, Sep 13 2012 4:33 pm
Subject: Re: Tkinter bug in Entry widgets on OS X
In article <k1qhgn$me...@dont-email.me>,
 Kevin Walzer <k...@codebykevin.com> wrote:

> On 8/31/12 6:18 AM, Arnaud Delobelle wrote:
> > I'm very inexperienced with Tkinter (I've never used it before).  All
> > I'm looking for is a workaround, i.e. a way to somehow suppress that
> > output.

> What are you trying to do? Navigate the focus to another widget? You
> should use the tab bar for that, not the arrow key. The entry widget is
> a single-line widget, and doesn't have up/down as the text widget does.

Based on other replies it looks as if the OP found a way to intercept
the event with suitable binding.

But I can answer the "why": on Mac OS X in a one-line text box up-arrow
should move the cursor to the beginning and down-arrow to the end.
That's standard behavior.

In any case I can't imagine ever wanting to see special chars get added
when arrow keys are pressed. The default behavior of the Entry widget is
unfortunate.

-- Russell


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »