Cannot pass arguments from the tkinter widget.after function
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).