This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: digit-only tag values are mishandled in Tkinter
Type: Stage:
Components: Tkinter Versions: Python 2.4
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: loewis Nosy List: effbot, gpolo, isandler, jepler, loewis
Priority: normal Keywords:

Created on 2005-03-10 04:32 by isandler, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (5)
msg24517 - (view) Author: Ilya Sandler (isandler) Date: 2005-03-10 04:32
It  appears that  most Tkinter tag operations fail on
digit-only tag values

>>> from Tkinter import *
>>> root=Tk()
>>> c=Canvas(root)
>>> c.create_line(0,0,100,100, tags="123")
1
>>> c.gettags(1)
('123',)
>>> c.pack()       
>>> c.find_withtag("123")
()

tkinter docs:
http://www.pythonware.com/library/tkinter/introduction/x2017-concepts.htm

only say this about tag values:
  "Tags are ordinary strings, and they can contain
anything except whitespace."

So this behaviour seems like a bug.
msg24518 - (view) Author: Jeff Epler (jepler) Date: 2005-03-19 14:20
Logged In: YES 
user_id=2772

This is a documentation bug.  The Tk documentation says
(canvas, section "ITEM IDS AND TAGS"):
       Each  item may also have any number of tags
associated with it.  A tag
       is just a string of characters, and it may take any
form  except  that
       of  an  integer.   For example, ‘‘x123’’ is OK but
‘‘123’’ isn’t.  The
       same tag may be associated with many different items.

Furthermore, the site www.pythonware.com is a third-party
site not run by the Python developers.  The official Python
documentation
(http://docs.python.org/lib/module-Tkinter.html and 'pydoc
Tkinter') doesn't explain the syntax of an item tag anywhere
that I could see)

I recommend closing this bug and notifying pythonware.com /
Fredrik Lundh about the problem via e-mail.
msg24519 - (view) Author: Fredrik Lundh (effbot) * (Python committer) Date: 2005-03-19 16:53
Logged In: YES 
user_id=38376

Here's the text before the quoted line:

"Everywhere a method expects an item specifier, you can 
use one of the following: * item handles * tags /.../ Item 
handles are integer values that are used to identify a specific 
item on the canvas /.../ Item handles can be passed to the 
various canvas methods either as integers or as strings. /.../"

Note the use of "one of", and the fact that item handles are 
described before tags. (Writing documentation for people who 
only reads random sentences is pretty much impossible...)
msg24520 - (view) Author: Ilya Sandler (isandler) Date: 2005-03-20 06:33
Logged In: YES 
user_id=971153

>".. Item handles can be passed to the various canvas methods 
> either as integers or as strings..." (from effbot posting)

While I can see how a very careful reader might notice that
there is a potential conflict between this "handles as
strings" statement and "tags can contain anything", I still
think that at the very least this conflict needs to be
mentioned explicitly.

> Furthermore, the site www.pythonware.com is a third-party
> site not run by the Python developers (from  jepler posting)

Actually for whatever reason I thought that pythonware.com
is the authorative source for tkinter docs....

I guess it does bring an interesting question for Fredrik...
Would you consider merging your Tkinter docs (which seem to
be reasonably complete) with python.org docs which seem to
be very spotty?

msg73287 - (view) Author: Guilherme Polo (gpolo) * (Python committer) Date: 2008-09-16 01:11
I don't see the bug here. items in a Canvas may be named either as id or
as a tag. If you specify items by something that is actually accepted as
an integer ("123" for instance) then it is assumed to refer to a single
item with id 123.

In your case you have an item with id "1", and when you do: 

c.find_withtag("123")

Tk tries to find an item with that id, which doesn't exist and returns
an empty tuple.
History
Date User Action Args
2022-04-11 14:56:10adminsetgithub: 41677
2008-09-16 01:11:37gpolosetstatus: open -> closed
resolution: wont fix
messages: + msg73287
2008-09-15 17:38:44gpolosetnosy: + gpolo
2005-03-10 04:32:14isandlercreate