Part of the GUI I\'m building using tkinter has a pop-up window that says \"Please wait while the program is running.\" then after it finishes the window goes away. I\'m usi
Add: Using Lambda function format, the function doesn´t fail after several recursive calls. eg:
Function abc(par):
stat-1
stat-2
...
stat-n
root.after(1000, lambda : abc(par))
...
(it´s very useful to update a time-clock at left-top of window, for example...)
When you do this:
widget.after(10, self.runBackup(mybackup))
... You are telling Tkinter "run the command runBackup
, and when it returns, use the result as an argument to after
". Because runBackup
returns None
, the above is equivalent to:
self.runBackup(mybackup)
widget.after(10, None)
Instead, you want to give after
a reference to the function, rather than calling the function. If the command needs arguments, those can be given to after
as additional arguments.
For example:
widget.after(10, self.runBackup, mybackup)
I would try functools.partial to wrap your call as in:
widget.after(10, functools.partial(self.runBackup, mybackup))
Or you could define a local function that takes no arguments but passes the parameter (which is in essence what functools.partial does).