Es posible hacer que una Tkinter botón de llamadas de función de dos?

algo como esto?:

from Tkinter import *

admin = Tk()
def o():
    print '1'

def t():
    print '2'
button = Button(admin, text='Press', command=o, command=t)
button.pack()

OriginalEl autor P’sao | 2011-04-30

3 Comentarios

  1. 8

    Hacer una nueva función que se llama:

    def o_and_t():
        o()
        t()
    button = Button(admin, text='Press', command=o_and_t)

    Alternativamente, usted puede utilizar este divertido función:

    def sequence(*functions):
        def func(*args, **kwargs):
            return_value = None
            for function in functions:
                return_value = function(*args, **kwargs)
            return return_value
        return func

    A continuación, se puede utilizar como esto:

    button = Button(admin, text='Press', command=sequence(o, t))
    Wow gracias. Me siento estúpido ahora.
    Me gusta que el comando de secuencia de la función. Bueno!

    OriginalEl autor icktoofay

  2. 1

    La sintaxis que se está tratando de que no existe, por desgracia. Lo que tendríamos que hacer es una función de contenedor que se ejecuta tanto de sus funciones. Un perezoso solución sería algo así como:

    def multifunction(*args):
        for function in args:
            function(s)
    
    cb = lambda: multifunction(o, t)
    button = Button(admin, text='Press', command=cb)

    OriginalEl autor Patrick Shanahan

  3. 0

    Me corrija si estoy equivocado, pero cada vez que necesitaba un botón para operar múltiples funciones, yo establecería una vez el botón

        button = Button(admin, text = 'Press', command = o)

    Y, a continuación, añadir otra función utilizando el .configure()

        button.configure(command = t)

    Añadido a la secuencia de comandos, como se vería este

        from Tkinter import *
    
        admin = Tk()
        def o():
        print '1'
    
        def t():
        print '2'
        button = Button(admin, text='Press', command=o)
        button.configure(command = t)
        button.pack()

    Esto podría ejecutar múltiples funciones, así como una función y un admin.destroy o cualquier otro comando sin el uso de una variable global o tener que redefinir nada

    OriginalEl autor Octopodes

Dejar respuesta

Please enter your comment!
Please enter your name here