Bonjour, je suis entrain de créé une sort de demineur mais je ne comprends pas pourquoi la configuration du bouton ne fonctionne pas.Est ce que vous pouvez m'aider.
Pièce jointe 611401
Voici mon programme
Version imprimable
Bonjour, je suis entrain de créé une sort de demineur mais je ne comprends pas pourquoi la configuration du bouton ne fonctionne pas.Est ce que vous pouvez m'aider.
Pièce jointe 611401
Voici mon programme
Salut,
Déjà vous créez un tas de Button qui ont le même callback/command/fonction associé. Arrivé dans "click", la variable button sera associée au dernier Button créé (pas nécessairement celui que vous voulez).
Après si çà génère un message d'erreur, il faut essayer de le comprendre avant de corriger et pas seulement constater "ça ne fonctionne pas".
note: on pourrait reproduire l'erreur si vous aviez posté un code plus complet, là on ne peut que regarder une image...
- W
Desolé pour mon programme, je viens juste de commencer. Mon programme fonctionne et je n'ai pas d'erreur juste quand je clicque sur un bouton la fonction click ne sert a rien. Je vous demande comment puis faire un programme qui créé une grille de bouton avec les demandes que la fonction clique a.
merci pour votre temps
Il y a plein de façons de faire... et pour les connaître, il faut prendre le temps d'ouvrir un tuto pour les apprendre, histoire d'utiliser celle qui sera la plus adaptée.
Pour moi une des plus faciles serait:
Après c'est à vous de voir...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import tkinter as tk root = tk.Tk() for i in range(4): for j in range(4): btn = tk.Button(root, text=f'{i}x{j}') btn.grid(row=i, column=j) def on_click(e): btn = e.widget print (btn['text']) btn.configure(bg='red') root.bind('<1>', on_click) tk.mainloop()
- W
merci, mais mon but c'est de créé un démineur avec une liste au depart et dans cette liste le 9=bombe alors ma question est puis-je associé chaque variable de la liste a un bouton?
Désolé je ne suis pas tres precis sur mon projet. Il conscite a créé un démineur tres simplifié. Je veux juste que quand l'utilisateur clique sur une case soit c'est une bombe est alors l'utilisateur quitte le programme soit c'est une case vide donc le bouton est desativé soit c'est un chiffre alors le bouton est desativé mais on voit le chiffre. J'ai deja la liste mais il me faut juste l'interface et j'ai créé ce programme qui ne fait pas ce que je veux.
Vous avez plusieurs fois mentionné votre but...
L'intérêt d'un tel petit projet est de montrer que vous savez faire quelque chose avec le Python que vous avez appris...
Il n'y a pas de variable dans une liste mais des objets qu'on pourra accéder via leur(s) indice(s).
Dans l'exemple que j'ai posté, chaque Button a été placé dans une ligne/colonne (i, j) via grid.
Si je le modifie pour que çà récupère/affiche ces (i, j):
Une fois récupérés i et j on peut accéder à l'item correspondant d'une liste de listes.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import tkinter as tk root = tk.Tk() for i in range(4): for j in range(4): btn = tk.Button(root, text=f'{i}x{j}') btn.grid(row=i, column=j) def on_click(e): x = e.x_root - root.winfo_rootx() y = e.y_root - root.winfo_rooty() i, j = root.grid_location(x, y) print(i, j, end='*') btn = e.widget print (btn['text']) btn.configure(bg='red') root.bind('<1>', on_click) tk.mainloop()
- W
Merci je viens de comprendre mais comment on fait pour que le bouton soit cliquer qu'une fois?
Merci beaucoup pour votre aider et votre temps.