Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [python {tkinter}] Passare argomento funzione invocata da un bottone

    Come faccio a passare un valore a una funziona richiamata tramite un bottone fatto in Tkinter???

    Cioè mi spiego, se faccio il bottone così:

    codice:
    b = Button(root, text="Il testo che vuoi", command=mia_func)
    e la funzione mia_func deve prendere 1 argomento, come glielo passo?
    http://negrita.com
    Grandissimi

    Solo quelli che sono così folli da pensare di cambiare il mondo, lo cambiano davvero.

  2. #2
    Guardando la definizione del costruttore della classe Button:

    codice:
    class Button(Widget):
        """Button widget."""
        def __init__(self, master=None, cnf={}, **kw):
    ...pare proprio non si possa.
    Puoi risolvere facendo un accrocchio del genere:

    codice:
    def fun(arg):
        print arg
    
    x = lambda: fun("argomento")
    b = Button(root, text="Il testo che vuoi", command=x)
    ...che non è poi neanche tanto brutto.
    Se la funzione accetta keyword args, diverrebbe:


    codice:
    def fun(arg, kwarg1, kwarg2):
        print arg
    
    x = lambda: fun("argomento", kwarg1=1,  kwarg2=2)
    b = Button(root, text="Il testo che vuoi", command=x)
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  3. #3
    Grazie, ci avevo pensato anch'io (cioè non proprio, pensavo di fare altre funzioni, grazie per l'idea di usare lambda), allora se non c'è altro modo utilizzo così. Grazie ancora!
    http://negrita.com
    Grandissimi

    Solo quelli che sono così folli da pensare di cambiare il mondo, lo cambiano davvero.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.