Signaler

Tkinter : la commande du bouton séxecute toute seule [Résolu]

Posez votre question Fabio - Dernière réponse le 23 mai 2017 à 20:21 par gudu
Bonjour,
Je commence à programmer en python, et je voulais créer un ensemble de petits jeux simples pour mes proches. J'ai aussi voulu créer un fichier qui servirait de menu à touts ces jeux :

import tkinter
import os

class fenetre (tkinter.Tk) :
    def __init__(self):
        super().__init__()
        self.grid()
        self.empty = tkinter.Label(font = ('courier', 20, ))
        self.empty.grid(column = 0, row = 0)
        self.titre = tkinter.Label(text="MY GAMES", font = ('courier', 40 , 'bold'))
        self.titre.grid(column = 0, row = 1)
        self.empty.grid(column=0, row=2)
        self.Save = tkinter.Button(text = "Save your phone !!!", font=('courier', 20), fg = 'black')
        self.Save.grid(column=0, row=3)
        self.Save.config(command=os.system("python3.5 Save\ your\ phone\ !!!.py"))

if __name__ == '__main__' :
    app =fenetre()
    app.title("Games")
    app.mainloop()


le fichier Save your phone !!!.py est un début de jeu

Le problème, c'est que quand je lance le programme, ça m'ouvre le fichier de jeu. Quand je le ferme, le menu apparaît, mais le bouton ne fonctionne pas

Pouvez-vous m'aider s'il-vous-plaît ?
Utile
+0
plus moins
Voir ce sujet.

https://stackoverflow.com/questions/6920302/how-to-pass-arguments-to-a-button-command-in-tkinter#comments-link-15510153

En gros, command a besoin de la référence de la fonction ou méthode, là tu fais un appel.

Sur la page mentionnée, il y a diverses solutions, dans ton cas, il suffit de placer ton bout de code (os.system...) dans une simple fonction, et de renseigner cette fonction dans l'option command du button,
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !