Search code examples
pythonpython-2.7buttontkintercommand

Have multiple commands when button is pressed


I want to run multiple functions when I click a button. For example I want my button to look like

self.testButton = Button(self, text = "test", 
                         command = func1(), command = func2())

when I execute this statement I get an error because I cannot allocate something to an argument twice. How can I make command execute multiple functions.


Solution

  • You could create a generic function for combining functions, it might look something like this:

    def combine_funcs(*funcs):
        def combined_func(*args, **kwargs):
            for f in funcs:
                f(*args, **kwargs)
        return combined_func
    

    Then you could create your button like this:

    self.testButton = Button(self, text = "test", 
                             command = combine_funcs(func1, func2))