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

boB Stepp <[email protected]>
Newsgroups gmane.comp.python.tkinter
Message-ID <CANDiX9JDbQzMNk4GjE1geTLHnNirTz3e2S8KOZvHD8DHa3f9kg@mail.gmail.com>
On Thu, Dec 8, 2016 at 12:00 PM, 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

I think your issue is that your list "t1" is not doing anything for
you.  Inside your __init__ method, "t1" and "self.t1" are not
referring to the same thing.  Your Text widget is bound to "t1", not
the list.  I am a relative newbie in tkinter, but apparently "0" is
not an allowed index.  "insert" inserts before the given index, which
in your case needs to be "END".

>
> from tkinter import *
>
> class Window(Frame):
>    t1 = []

I don't see what this is doing.  It will not be the same as t1 in your
method below.

>    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')

This needs to drop the "self" and use an appropriate index.  It should
be:  "t1.insert(END, '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')
>
>    def client_quit(self):
>        exit()
>
> root = Tk()
> root.geometry()
> app = Window(root)
> root.mainloop()
>

HTH!

boB
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.