Tkinter : la commande du bouton séxecute toute seule

Résolu/Fermé
Fabio - 23 mai 2017 à 16:11
 gudu - 23 mai 2017 à 20:21
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 ?

1 réponse

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,
1