[Tutor] after(), how do I use it?

michael scott jigenbakuda at yahoo.com
Tue Apr 26 03:02:35 CEST 2011


Here is the code in its entirety, it works although I don't see after() defined, 
so I assumed it was a built in function. I can just copy and paste parts of this 
code into my project, so its not imperative that I understand, but I prefer to 
use the weapons I've been given. So I hope that you guys can understand it a bit 
better after I post this.

import Tkinter as tk

class App(tk.Tk):
    def __init__(self,*args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.label = tk.Label(self, text="", width=20, anchor="w")
        self.label.pack(side="top",fill="both",expand=True)
        self.print_label_slowly("Hello, world!")

    def print_label_slowly(self, message):
        '''Print a label one character at a time using the event loop'''
        t = self.label.cget("text")
        t += message[0]
        self.label.config(text=t)
        if len(message) > 1:
            self.after(500, self.print_label_slowly, message[1:])

app = App()
app.mainloop()


 ----
What is it about you... that intrigues me so?




________________________________
From: Adam Bark <adam.jtm30 at gmail.com>
To: tutor at python.org
Sent: Mon, April 25, 2011 8:50:16 PM
Subject: Re: [Tutor] after(), how do I use it?

On 26/04/11 01:36, michael scott wrote:
> Hello, I asked for help in another location and it solved my problem, but the 
>only problem is I don't fully understand the after function. Here is part of the 
>code that was given to me.
> 
> 
>     def print_label_slowly(self, message):
>         '''Print a label one character at a time using the event loop'''
>         t = self.label.cget("text")
>         t += message[0]
>         self.label.config(text=t)
>         if len(message) > 1:
>             self.after(500, self.print_label_slowly, message[1:])
> 
> I understand it, and the gist of how it works, but the self.after... I can not 
>find any documentation on it (because after is such a common word), so can you 
>guys tell me how it works. Is this a built in function (didn't see it on the 
>built in function list)? Does it always take 3 arguements? Is this a user made 
>function and I'm just overlooking where it was defined at?

The function you have shown there appears to be a class method. self.after means 
you are calling another method of the same function that print_label_slowly is a 
part of.
Do you have the rest of the code? If you're still confused post it and hopefully 
we can clear it up for you.

HTH,
Adam.
_______________________________________________
Tutor maillist  -  Tutor at python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110425/230a550e/attachment-0001.html>


More information about the Tutor mailing list