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