铁石 wrote: > I am writing a resource manager like program ! > the files of directory is display on canvas and taged. > the tag and file name is keep in a dictionary! > The tag is a increaseing number from 1,so I build the > dictionary like (1:file1,2:file2,......). > While geting into another directory,I try to remove all > object and tags on the canvas so that the tags would be > count form 1 again.But I found out the tag number is > increasing, not recount form 1. My dictionary can be > organize that simple.
This sounds like a bug in your program; you should be able to start over with the tags. Can you show us some code? > I want to know is there a way to get the tag of canvas > recount form 1 again? or even more simple ,get the filename > I had wrote in canvas directly? You can use the itemcget() method of the canvas to retrieve the text: >>> root = Tk() >>> canvas=Canvas(root) >>> t=canvas.create_text(10, 10, text='Hello', tag='1') >>> canvas.pack() >>> canvas.itemcget('1', 'text') 'Hello' There does seem to be something strange with reusing the tags - if I create a new element with tag '1' I can't retrieve it by tag: >>> canvas.delete('1') >>> t=canvas.create_text(10, 10, text='Goodbye', tag='1') >>> canvas.itemcget('1', 'text') '' >>> canvas.find_withtag('1') () even though if I ask what tags are on the item it says '1': >>> t 2 >>> canvas.itemcget(2, 'text') 'Goodbye' >>> canvas.itemcget(2, 'tags') '1' >>> canvas.find_withtag('1') Maybe you could just remember the handles to the text items instead of using tags? Kent
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor