[Tkinter-discuss] Why can't I use the END index with my text widget in Tkinter?

irvinicus irvinicus at yahoo.com
Sat Dec 11 18:28:49 CET 2010


Actually, somebody else sent me 

mytextbox.insert(END, "\n"+textfordisplay)

...which seems to work fine.  Thanks, though.


Michael Lange wrote:
> 
> Hi,
> 
> Thus spoketh irvinicus <irvinicus at yahoo.com> 
> unto us on Fri, 10 Dec 2010 16:15:27 -0800 (PST):
> 
>> 
>> I'm using the text widget to give ongoing updates to the user.  When
>> something happens in the program, I want to add an update to the user
>> in the text widget. 
>> 
>> But I can't figure out how to add each new update onto it's own new
>> line. I've looked through the documentation, but I don't see any
>> methods that would help me, so I figured I could just use the index END
>> and use modifiers on it, but no such luck.
>> 
>> Here's my script (my italics, obviously):
>> 
>> from Tkinter import *  # I import Tkinter into my Python script.
>> 
>> ...  # Blah blah blah
>> 
>> mytextbox.insert(END + 1 lines, textfordisplay) 
>> # The interpreter stops and tells me that lines is "invalid syntax".
> 
> Tkinter.END is simply a constant representing the string "end", so you
> would have to write
> 
>     mytextbox.insert(END + " + 1 lines", textfordisplay)
> or
>     mytextbox.insert("end + 1 lines", textfordisplay)
> 
> However at least here (debian linux, tk-8.4), this does not work as
> expected, when I repeatedly type
> 
>     mytextbox.insert('end + 1 lines', 'foobar')
> 
> the "foobars" are all appended to the end of the same last line. I guess
> this because "end" means "end", and this method is only valid for other
> indices, like "insert" and so on.
> 
> So if you want to add an empty line to the end of the text widget, the
> most obvious way is to do:
> 
>     mytextbox.insert(END, os.linesep)
> 
> or, if you want to save a line,
> 
>     mytextbox.insert(END, os.linesep + textfordisplay)
> 
> but be careful, this might cause unexpected unicode errors if
> "textfordisplay" contains any non-ascii characters.
> 
> For more details on text indices see:
> 
> http://www.tcl.tk/man/tcl8.4/TkCmd/text.htm#M18
> 
> I hope this helps
> 
> Michael
> 
> 
> .-.. .. ...- .   .-.. --- -. --.   .- -. -..   .--. .-. --- ... .--. . .-.
> 
> Uncontrolled power will turn even saints into savages.  And we can all
> be counted on to live down to our lowest impulses.
> 		-- Parmen, "Plato's Stepchildren", stardate 5784.3
> _______________________________________________
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
> http://mail.python.org/mailman/listinfo/tkinter-discuss
> 
> 

-- 
View this message in context: http://old.nabble.com/Why-can%27t-I-use-the-END-index-with-my-text-widget-in-Tkinter--tp30431052p30434402.html
Sent from the Python - tkinter-discuss mailing list archive at Nabble.com.



More information about the Tkinter-discuss mailing list