modif sur la recup de de, pbleme avec les variables

This commit is contained in:
Christophe C 2024-03-29 19:48:27 +01:00
parent d9a195b5ba
commit 5c44001bb4
3 changed files with 134 additions and 12 deletions

View File

@ -1,4 +1,11 @@
import customtkinter as tk # import de la bibliothèque interface graphique "as tk" : on remplace customtkinter par tk import customtkinter as tk # import de la bibliothèque interface graphique "as tk" : on remplace customtkinter par tk
from time import sleep
import random
TypeDeDes = 6 # variable globale
NbredeDes = 1
def quitter(): # création d'une fonction pour quitter def quitter(): # création d'une fonction pour quitter
fenetreMenu.destroy() # destroy = fonction qui arrête tout fenetreMenu.destroy() # destroy = fonction qui arrête tout
@ -11,12 +18,12 @@ label = tk.CTkLabel(fenetreMenu, text="Lancez les dés", font=('Arial',22)) #
label.pack(pady=5) label.pack(pady=5)
# label.pack(padx=10, pady=10) # padx, pady, ajoute des pixel entre widget # label.pack(padx=10, pady=10) # padx, pady, ajoute des pixel entre widget
# Création des boutons
cadreFormatDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition cadreFormatDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition
cadreFormatDe.pack(side=tk.TOP, anchor=tk.CENTER, pady=10) cadreFormatDe.pack(side=tk.TOP, anchor=tk.CENTER, pady=10)
DicoBoutons = {} # création d'un Dico pour distingués les boutons DicoBoutons = {} # création d'un Dico pour distingués les boutons
for i in [4, 6, 8, 10, 12, 20] : for i in [4, 6, 8, 10, 12, 20] :
button = tk.CTkButton(cadreFormatDe, text= f"D{i}", hover=False, width=50) # création d'un bouton button = tk.CTkButton(cadreFormatDe, text= f"D{i}", hover=False, width=50) # création d'un bouton
@ -28,36 +35,44 @@ def clic4 ():
for i in [4, 6, 8, 10, 12, 20] : for i in [4, 6, 8, 10, 12, 20] :
DicoBoutons[i].configure(fg_color="blue") DicoBoutons[i].configure(fg_color="blue")
DicoBoutons[4].configure(fg_color="red") DicoBoutons[4].configure(fg_color="red")
TypeDeDes = 4
def clic6 (): def clic6 ():
print("D6") print("D6")
for i in [4, 6, 8, 10, 12, 20] : for i in [4, 6, 8, 10, 12, 20] :
DicoBoutons[i].configure(fg_color="blue") DicoBoutons[i].configure(fg_color="blue")
DicoBoutons[6].configure(fg_color="red") DicoBoutons[6].configure(fg_color="red")
TypeDeDes = 6
def clic8 (): def clic8 ():
print("D8") print("D8")
for i in [4, 6, 8, 10, 12, 20] : for i in [4, 6, 8, 10, 12, 20] :
DicoBoutons[i].configure(fg_color="blue") DicoBoutons[i].configure(fg_color="blue")
DicoBoutons[8].configure(fg_color="red") DicoBoutons[8].configure(fg_color="red")
TypeDeDes = 8
def clic10 (): def clic10 ():
print("D10") print("D10")
for i in [4, 6, 8, 10, 12, 20] : for i in [4, 6, 8, 10, 12, 20] :
DicoBoutons[i].configure(fg_color="blue") DicoBoutons[i].configure(fg_color="blue")
DicoBoutons[10].configure(fg_color="red") DicoBoutons[10].configure(fg_color="red")
TypeDeDes = 10
def clic12 (): def clic12 ():
print("D12") print("D12")
for i in [4, 6, 8, 10, 12, 20] : for i in [4, 6, 8, 10, 12, 20] :
DicoBoutons[i].configure(fg_color="blue") DicoBoutons[i].configure(fg_color="blue")
DicoBoutons[12].configure(fg_color="red") DicoBoutons[12].configure(fg_color="red")
TypeDeDes = 12
def clic20 (): def clic20 ():
print("D20") print("D20")
for i in [4, 6, 8, 10, 12, 20] : for i in [4, 6, 8, 10, 12, 20] :
DicoBoutons[i].configure(fg_color="blue") DicoBoutons[i].configure(fg_color="blue")
DicoBoutons[20].configure(fg_color="red") DicoBoutons[20].configure(fg_color="red")
TypeDeDes = 20
DicoBoutons[4].configure(command=clic4) DicoBoutons[4].configure(command=clic4)
@ -68,15 +83,71 @@ DicoBoutons[12].configure(command=clic12)
DicoBoutons[20].configure(command=clic20) DicoBoutons[20].configure(command=clic20)
# print(DicoBoutons) # print(DicoBoutons) #print de controle
cadreNbreDe=tk.CTkFrame(fenetreMenu) labelerreur = tk.CTkLabel(fenetreMenu)
cadreNbreDe.pack(side=tk.TOP, pady=10)
label = tk.CTkLabel(cadreNbreDe, text="Nombre de dés", font=('Arial',20)) # crée du texte def recup_NbreDes():
label.pack(side=tk.LEFT, padx=10) labelerreur.pack_forget()
entryNbreDe = tk.CTkEntry(cadreNbreDe, width=50) # crée une zone de saisie NbredeDes = entryNbreDes.get()
entryNbreDe.pack(side=tk.LEFT,padx=5)
try:
nombre_entier = int(NbredeDes)
print("Nombre entier saisi :", nombre_entier)
#labelerreur.configure_forget()
# Vous pouvez utiliser 'nombre_entier' comme vous le souhaitez ici
except ValueError:
labelerreur.configure(fenetreMenu, text="Veuillez saisir un nombre entier valide.", font=('Arial',20)) # crée du texte (label)
labelerreur.pack()
resultatDe = 0
nombreDeDe = nombre_entier
typeDeDe = TypeDeDes
print(typeDeDe , nombreDeDe)
# listeResultat = [0] # création d'une liste pour stocker le nombre de résultats par valeur
# for i in range(1,typeDeDe) :
# listeResultat.append(0)
# i = 1 # variable d'incrémentation
# while( i <= nombreDeDe ) : #boucle de lancer de dés et stockage des résultats par valeur
# resultatDe = random.randint(1,typeDeDe)
# listeResultat[resultatDe-1] += 1
# listeReussite = [0]
# for i in range(1,typeDeDe) :
# listeReussite.append(0)
# for i in range(0,typeDeDe) :
# for u in range(i,typeDeDe) :
# listeReussite[i] = listeReussite[i] + listeResultat[u]
# print(listeResultat)
# print(listeReussite)
cadreNbreDe=tk.CTkFrame(fenetreMenu) # création d'un cadre pour le nombre de dés
cadreNbreDe.pack(side=tk.TOP, pady=10) # définition du cadre
label = tk.CTkLabel(cadreNbreDe, text="Nombre de dés", font=('Arial',20)) # crée du texte (label)
label.pack(side=tk.LEFT, padx=10) # définition des caractéristiques du label
entryNbreDes = tk.CTkEntry(cadreNbreDe, width=50) # crée une zone de saisie
entryNbreDes.pack(side=tk.LEFT,padx=5) # définition des caractéristiques de la zone de saisie
BoutonOK = tk.CTkButton(cadreNbreDe,text = "OK", width=40, command=recup_NbreDes )
BoutonOK.pack(side=tk.LEFT)
# labelresult = tk.CTkLabel( fenetreMenu , text="essai resultat")
# labelresult.pack()
cadreQuit=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition cadreQuit=tk.CTkFrame(fenetreMenu) # création d'un cadre pour facilité la disposition
@ -85,8 +156,8 @@ button = tk.CTkButton(cadreQuit, text="QUITTER", command=quitter) # création
button.pack(side=tk.BOTTOM, pady=15) # side=tk.BOTTOM est utilisé pour ancrer vers le bas : indiquer celui qui est plus bas en premier button.pack(side=tk.BOTTOM, pady=15) # side=tk.BOTTOM est utilisé pour ancrer vers le bas : indiquer celui qui est plus bas en premier
entry = tk.CTkEntry(fenetreMenu, width=250) # crée une zone de saisie # entry = tk.CTkEntry(fenetreMenu, width=250) # crée une zone de saisie
entry.pack(side=tk.BOTTOM,) # entry.pack(side=tk.BOTTOM,)
fenetreMenu.mainloop() fenetreMenu.mainloop()

23
essaiEntry.py Normal file
View File

@ -0,0 +1,23 @@
import tkinter as tk
def recupere_valeur():
valeur_saisie = entree.get()
try:
nombre_entier = int(valeur_saisie)
print("Nombre entier saisi :", nombre_entier)
# Vous pouvez utiliser 'nombre_entier' comme vous le souhaitez ici
except ValueError:
print("Veuillez saisir un nombre entier valide.")
fenetre = tk.Tk()
fenetre.title("Exemple de zone de saisie")
# Créer la zone de saisie
entree = tk.Entry(fenetre)
entree.pack(pady=10)
# Créer un bouton pour récupérer la valeur
bouton = tk.Button(fenetre, text="Récupérer la valeur", command=recupere_valeur)
bouton.pack()
fenetre.mainloop()

28
essaiseffacelabel.py Normal file
View File

@ -0,0 +1,28 @@
import tkinter as tk
def recupere_valeur():
valeur_saisie = entree.get()
try:
nombre_entier = int(valeur_saisie)
print("Nombre entier saisi :", nombre_entier)
# Vous pouvez utiliser 'nombre_entier' comme vous le souhaitez ici
except ValueError:
# Afficher un message d'erreur dans le label
message_label.config(text="Veuillez saisir un nombre entier valide.")
fenetre = tk.Tk()
fenetre.title("Exemple de zone de saisie")
# Créer la zone de saisie
entree = tk.Entry(fenetre)
entree.pack(pady=10)
# Créer un bouton pour récupérer la valeur
bouton = tk.Button(fenetre, text="Récupérer la valeur", command=recupere_valeur)
bouton.pack()
# Créer un label pour afficher les messages
message_label = tk.Label(fenetre, text="Entrez un nombre entier.")
message_label.pack()
fenetre.mainloop()