[pyton]Prob de variable et de curseur
lonewolfs
Messages postés
51
Statut
Membre
-
sebsauvage Messages postés 33415 Statut Modérateur -
sebsauvage Messages postés 33415 Statut Modérateur -
Bonjour,
Je viens de terminer avec un ami un programme de revision des tables de multiplication en interface graphique (Tkinter).
Il fonctionne mais il se pose deux problèmes qui a priori depasse ma competence. La variable prenom que je pose au depart n'est pas recuperée et mon programme appelle "anonyme" toutes les personnes qui jouent.
Et lors de la phase de reponse, le curseur ne se place automatiquement a l'endroit de la reponse, ce qui fait que l'utilisateur doit automatiquement faire appel a la souris pour se replacer.
Ce sont deux problèmes que j'aimerais resoudre pour optimiser mon programme.
J'en appelle donc a vos compétences et a votre aide pour me donner un coup de main.
Je vous transmet mon code et vous remercie par avance pour l'aide que vous m'apporterez.
lonewolf
Ce programme a été crée a partir de mon algorithme et rendons a césar ce qui est à césar, tout le coté graphique a été réalisé par cat_loic
Qu'il en soit remercié ici aussi.
Je viens de terminer avec un ami un programme de revision des tables de multiplication en interface graphique (Tkinter).
Il fonctionne mais il se pose deux problèmes qui a priori depasse ma competence. La variable prenom que je pose au depart n'est pas recuperée et mon programme appelle "anonyme" toutes les personnes qui jouent.
Et lors de la phase de reponse, le curseur ne se place automatiquement a l'endroit de la reponse, ce qui fait que l'utilisateur doit automatiquement faire appel a la souris pour se replacer.
Ce sont deux problèmes que j'aimerais resoudre pour optimiser mon programme.
J'en appelle donc a vos compétences et a votre aide pour me donner un coup de main.
Je vous transmet mon code et vous remercie par avance pour l'aide que vous m'apporterez.
lonewolf
# -*- coding: utf-8 -*-
from Tkinter import *
from random import randrange
def dem_pseudo():
"Demande le pseudo de l'utilisateur"
global texte1, bouton1, entree1, compteur1, compteur2
texte1 = Label(fenetre1, text='Entrez votre prénom')
texte1.pack()
entree1 = Entry(fenetre1)
entree1.pack()
bouton1 = Button(fenetre1, text='Valider', command=(lambda:choix_pseudo(0)))
bouton1.pack()
fenetre1.bind('<Return>', choix_pseudo)
def choix_pseudo(event):
"Choix du pseudo"
global texte1, bouton1, entree1, compteur1, compteur2, pseudo
try:
str(entree1.get())
except:
pseudo = "anonyme"
else:
pseudo = str(entree1.get())
if pseudo == "":
pseudo = "anonyme"
entree1.destroy()
bouton1.destroy()
dem_table()
def dem_table():
"Demande à l'utilisateur la table"
global texte1, bouton1, entree1, compteur1, compteur2, pseudo
texte1.configure(text='Veuillez choisir votre table de multiplication :')
entree1 = Entry(fenetre1)
entree1.pack()
bouton1 = Button(fenetre1, text='Valider', command=(lambda:choix_table(0)))
bouton1.pack()
fenetre1.bind('<Return>', choix_table)
def choix_table(event):
"Choix de la table à réviser"
global table, compteur1, compteur2, texte1, bouton1, entree1, pseudo
try:
int(entree1.get())
except:
table = randrange(1,10)
else:
table = int(entree1.get())
entree1.destroy()
bouton1.destroy()
choix_chiffre()
def choix_chiffre():
"Choix du chiffre"
global table, chiffre, entree1, bouton1, texte1, compteur1, compteur2, pseudo
chiffre = randrange(1,10)
texte1.configure(text=str(chiffre)+' x '+str(table)+' =')
entree1 = Entry(fenetre1)
entree1.pack()
compteur1 += 1
bouton1 = Button(fenetre1, text='Valider', command=(lambda:val_mult(0)))
bouton1.pack()
fenetre1.bind('<Return>', val_mult)
def val_mult(event):
"Validation de la multiplication"
global table, chiffre, entree1, bouton1, compteur2, bouton2, texte1, texte2, texte3, compteur1, compteur2, pseudo
bouton1.destroy()
res_juste = table * chiffre
try:
int(entree1.get())
except:
res_utilisateur = 0
else:
res_utilisateur = int(entree1.get())
entree1.destroy()
if res_juste == res_utilisateur:
texte1.configure(text='Bravo '+str(pseudo)+' ! Tu as trouvé !')
compteur2 += 1
else:
texte1.configure(text='Faux, la réponse était :'+str(res_juste))
if compteur1 == 10:
taux = compteur2 * 100 / 10
texte2 = Label(fenetre1, text='Ton taux de réussite est de : '+str(taux)+' %')
texte2.pack()
texte3 = Label(fenetre1, text='Veux tu recommencer ?')
texte3.pack()
bouton1 = Button(fenetre1, text='oui', command=recommencer)
bouton1.pack()
bouton2 = Button(fenetre1, text='non', command=fenetre1.destroy)
bouton2.pack()
else:
bouton1 = Button(fenetre1, text='on continue :)', command=(lambda:continuer(0)))
bouton1.pack()
fenetre1.bind('<Return>', continuer)
def recommencer():
"Réinitialisateur"
global table, chiffre, entree1, bouton1, compteur2, bouton2, texte1, texte2, texte3, compteur1, compteur2, pseudo
texte2.destroy()
texte3.destroy()
bouton1.destroy()
bouton2.destroy()
compteur1 = 0
compteur2 = 0
dem_table()
def continuer(event):
"Réinitialisateur partiel"
global table, chiffre, entree1, bouton1, compteur2, bouton2, texte1, texte2, texte3, compteur1, compteur2, pseudo
bouton1.destroy()
choix_chiffre()
# Programme principal
fenetre1 = Tk()
fenetre1.title('multiplication')
fenetre1.geometry('300x150')
compteur1 = 0
compteur2 = 0
dem_pseudo()
fenetre1.mainloop()
Ce programme a été crée a partir de mon algorithme et rendons a césar ce qui est à césar, tout le coté graphique a été réalisé par cat_loic
Qu'il en soit remercié ici aussi.
A voir également:
- [pyton]Prob de variable et de curseur
- Comment faire apparaître le curseur sans souris - Guide
- Comment activer le curseur de mon pc - Guide
- Curseur qui efface ✓ - Forum Windows
- Curseur souris disparu pc portable acer ✓ - Forum souris / Touchpad
- Curseur en arabe - Forum Windows
1 réponse
Je fuis le mot "global" comme la peste.
Quand on créé des interfaces graphique, il vaut mieux généralement faire une classe par fenêtre.
Des recommandations:
https://sebsauvage.net/python/gui/index_fr.html
Quand on créé des interfaces graphique, il vaut mieux généralement faire une classe par fenêtre.
Des recommandations:
https://sebsauvage.net/python/gui/index_fr.html