Re: Learning Python/Tkinter and struggling with the text object

Michael Lange <[email protected]>
Newsgroups gmane.comp.python.tkinter
Message-ID <[email protected]>
Hi,

On Thu, 8 Dec 2016 11:00:50 -0700
"Alan L Dickman" <[email protected]> wrote:

> Thanks in advance for any help! I'm just learning Python and Tkinter.
> Can anyone suggest why this program does not insert 'some text' into
> text box t1 when the start button is clicked? No errors are thrown when
> I run the program in PyCharm
> 
> from tkinter import *
> 
> class Window(Frame):
>     t1 = []
>     def __init__(self, master=None)
>         Frame.__init__(self, master)
>         self.master = master
>         self.master.title("My Title")
>         StartButton = Button(self, text="Start", command=self.start, bg=
> '#006ba6', fg="white")
>         StartButton.grid(row=0, columnspan=3, sticky=(N, S, W, E))
>         Label(self, text="Your Name").grid(row=1, sticky=(N, S, W, E))
>         t1 = Text(self, height=2)
>         t1.grid(row=1, column=1, sticky=(N, S, W, E))
>         self.t1.insert( 0, 'some text')
>         quitButton = Button(self, text="Quit",
> command=self.client_quit, bg='#006ba6', fg="white")
>         quitButton.grid(row=5, columnspan=3, sticky=(N, S, W, E))
>         self.grid(sticky=(N, S, W, E))
> 
>     def start(self):
>         self.t1.insert(0, 'some text')
(...)

there are various problems here:
You do  self.t1.insert( 0, 'some text') , your text widget however is
"t1", self.t1 is an empty list, so your list after the button press will
look like ['some text', 'some text'] .
Next, if you try to insert a string into a text widget, you need to
specify the index with a construct like "line.character", so if you want
to insert something at the start of the first line, use 1.0 instead of 0,
otherwise a TclError will be thrown, as in:

>>> text.insert(0, 'foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Tkinter.py", line 3236, in insert
    self.tk.call((self._w, 'insert', index, chars) + args)
_tkinter.TclError: bad text index "0"

Best regards

Michael


.-.. .. ...- .   .-.. --- -. --.   .- -. -..   .--. .-. --- ... .--. . .-.

Immortality consists largely of boredom.
		-- Zefrem Cochrane, "Metamorphosis", stardate 3219.8
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.