Commit b96392a6 authored by Thorfin89's avatar Thorfin89

Suppression du compteur dans la boucle des logos

parent ccc82f8d
#### Créer une mosaïque de boutons Tkinter pour lancer des fonctions différentes :
Voici un exemple de code qui montre comment créer une mosaïque de boutons à l'aide de Tkinter et comment lier chaque bouton à une fonction différente :
```python
import tkinter as tk
def button_function_1():
print("Button 1 clicked")
def button_function_2():
print("Button 2 clicked")
def button_function_3():
print("Button 3 clicked")
root = tk.Tk()
# Create a 3x3 grid of buttons
for i in range(3):
for j in range(3):
button = tk.Button(root, text="Button " + str(i*3+j+1))
button.grid(row=i, column=j)
# Link buttons to functions
button1 = root.grid_slaves(row=0, column=0)[0]
button1.config(command=button_function_1)
button2 = root.grid_slaves(row=0, column=1)[0]
button2.config(command=button_function_2)
button3 = root.grid_slaves(row=0, column=2)[0]
button3.config(command=button_function_3)
root.mainloop()
```
Ce code crée une fenêtre Tkinter qui contient une grille de 3 lignes et 3 colonnes de boutons. Chacun des boutons est créé en utilisant la méthode `tk.Button()` et est disposé dans la grille en utilisant la méthode `grid()`. Ensuite, on récupère les boutons à l'aide de la fonction `grid_slaves()` de Tkinter, et on lie les boutons aux fonctions correspondantes en utilisant la fonction `config()` Enfin, on lance la boucle principale de Tkinter avec la fonction `mainloop()` pour que la fenêtre reste ouverte jusqu'à ce que l'utilisateur la ferme.
Il est important de noter que vous pouvez également utiliser des boucles `for` pour lier les boutons à des fonctions différentes, cela dépend de vos besoins.
#### Solution en utilisant des boucles 'for' :
pour créer une mosaïque de boutons et les lier à des fonctions différentes en utilisant Tkinter:
```python
import tkinter as tk
def button_function(num):
print(f"Button {num} clicked")
root = tk.Tk()
# Create a 3x3 grid of buttons
for i in range(3):
for j in range(3):
button = tk.Button(root, text="Button " + str(i*3+j+1))
button.grid(row=i, column=j)
button.config(command=lambda i=i, j=j: button_function(i*3+j+1))
root.mainloop()
```
Ici, on crée une fonction `button_function(num)` qui prend un argument numérique et on l'utilise pour lier les boutons à cette fonction en utilisant la méthode `config()` et on passe l'argument `i*3+j+1` pour chaque bouton de la grille à cette fonction. On utilise les closures pour capturer les valeurs de `i` et `j` dans chaque itération de la boucle for.
Il est important de noter que vous pouvez également utiliser des fonctions lambda pour créer des fonctions anonymes qui peuvent être utilisées comme des rappels pour les boutons.
En résumé, c'est une autre façon de lier les boutons à des fonctions différentes en utilisant les boucles `for` pour parcourir les boutons de la grille et en utilisant des closures pour capturer les valeurs de `i` et `j` pour chaque bouton.
...@@ -112,6 +112,8 @@ class Pupitre: ...@@ -112,6 +112,8 @@ class Pupitre:
btn_logo = tk.Button(self.zone_logos, image=self.logo[compt], command=lambda:self.test(compt)) btn_logo = tk.Button(self.zone_logos, image=self.logo[compt], command=lambda:self.test(compt))
btn_logo.place(width=100, height=100, x=x_logo * 100, y=y_logo * 100) btn_logo.place(width=100, height=100, x=x_logo * 100, y=y_logo * 100)
compt += 1 compt += 1
print(compt)
print(y_logo*5+x_logo+1)
def switch_sound(self): def switch_sound(self):
# bascule on/off du son # bascule on/off du son
......
import tkinter as tk
def button_function(num):
print(f"Button {num} clicked")
root = tk.Tk()
# Create a 3x3 grid of buttons
for i in range(3):
for j in range(3):
button = tk.Button(root, text="Button " + str(i*3+j+1))
button.grid(row=i, column=j)
button.config(command=lambda i=i, j=j: button_function(i*3+j+1))
root.mainloop()
\ No newline at end of file
import tkinter as tk
def button_function(num):
print(f"Button {num} clicked")
root = tk.Tk()
# Create a 3x3 grid of buttons
for i in range(4):
for j in range(5):
button = tk.Button(root, text="Button " + str(i*5+j+1))
button.grid(row=i, column=j)
button.config(command=lambda i=i, j=j: button_function(i*3+j+1))
root.mainloop()
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment