Tkinter : boite de Dialogue et évènements
parfois, envoyé un petit message sur l'écran où concevoir un jeu vidéo qui fonctionne avec le clavier ou la souris peut être très intéressant. dans cette partie nous allons abordées ces deux concept que tkinter nos offre.
Boites de Dialogues
Nous distinguons dans cette catégorie, les éléments venant de 4 class de tkinter : les MessageBox, les FileDialog, les simpledialog et le ColorChooser
Les
MessageBox :
Ils permettent d’afficher
un message ou poser une question
from tkinter.massagebox import *
showinfo
:
permet d’afficher
un message
showinfo(titre','message
à afficher')
showwarning :
Permet d’afficher une alerte de danger
showwarning(titre','message
à afficher')
askyesno,
permet à l’utilisateur de choisir entre oui et
non
ans = askyesno("Continue", "Should I continue?”)
si yes, ans=True, si non, ans=False
Les
simpledialog
Ils permettent de
demander une valeur rapidement à l’utilisateur
from tkinter.simpledilalog
import *
askstring,
permet de demander une
chaine de caratère à l’utilisateur
ans = askstring("Titre", "Give me your name")
print (ans)
askinterger,
permet de demander un
entier à l’utilisateur
ans = askinteger(”Dialogue
Titre", "Give me an integer")
print (ans)
ans = askinteger(”Num", "Give me an integer between 0 and 100", minvalue=0, maxvalue=100)
Les
filedialog
Ils permettent de
communiquer avec les fichiers présents sur le disque dur
from
tkinter.filedialog import *
askopenfilename :
Permet d’ouvrir un
fichier unique dont l’extension a été précisée
photo=askopenfilename(filetypes=[("image",".png"),("document",".pdf")]) :
l’on cherche une image au format .png ou un document au format pdf
askopenfilenames :
Permet d’ouvrir plusieurs
fichiers dont l’extension a été précisée
photo=askopenfilenames(filetypes=[("image",".png"),("document",".pdf")]) :
l’on cherche plusieurs images au format .png ou plusieurs documents au format
pdf
asksaveasfilename()
Permet d’enregistrer un
fichier sur le disque dur
photo=
asksaveasfilename()
les
colorchooser()
permet d’ouvrir le
gestionnaire de couleur de tkinter pour permettre à l’utilisateur de cohisir
une couleur parmi celle proposée. La couleur renvoyé est sous forme hexadécimal
from
tkinter.colorchooser import askcolor
result=askcolor()
couleurHexadécimal=result[1] # utilisable
les événements
Les évènements permettent
d’activer les fonctions sans toutefois passer par un bouton ou tout autre
widget cliquable. Cependant, la fonction qui est appelé par l’évènement doit
avoir un argument event dans sa définition.
Les évènements permettent
donc de lier une fonction aux widgets non cliquables
Pour associer un
événement à un widget, l’on utilise la syntaxe suivante
Syntaxe.
widget.bind('<modifier-evenement>',fonction)
Nb :
Le modifier est optionnel
evenement souris :
Button-n
Buttonn-Motion
Buttonn-ButtonRelease
Avec n compris entre (1,2,3)
Exemple : label.bind(‘<Button-1>’,functionN)
1 =clique gauche,
2=molette souris, 3= clique droit
Evènements clavier :
.keysym |
.keycode |
.keysym_num |
Alt_L |
64 |
65513 |
Alt_R |
113 |
65514 |
BackSpace |
22 |
65288 |
Cancel |
110 |
65387 |
Caps_Lock |
66 |
65549 |
Control_L |
37 |
65507 |
Control_R |
109 |
65508 |
Delete |
107 |
65535 |
Down |
104 |
65364 |
End |
103 |
65367 |
Escape |
9 |
65307 |
Execute |
111 |
65378 |
F1 |
67 |
65470 |
F2 |
68 |
65471 |
Fi |
66+i |
65469+i |
F12 |
96 |
65481 |
Home |
97 |
65360 |
Insert |
106 |
65379 |
Left |
100 |
65361 |
Linefeed |
54 |
106 |
KP_0 |
90 |
65438 |
KP_1 |
87 |
65436 |
KP_2 |
88 |
65433 |
KP_3 |
89 |
65435 |
KP_4 |
83 |
65430 |
KP_5 |
84 |
65437 |
KP_6 |
85 |
65432 |
KP_7 |
79 |
65429 |
KP_8 |
80 |
65431 |
KP_9 |
81 |
65434 |
KP_Add |
86 |
65451 |
KP_Begin |
84 |
65437 |
KP_Decimal |
91 |
65439 |
KP_Delete |
91 |
65439 |
KP_Divide |
112 |
65455 |
KP_Down |
88 |
65433 |
KP_End |
87 |
65436 |
.keysym |
.keycode |
.keysym_num |
KP_Enter |
108 |
65421 |
KP_Home |
79 |
65429 |
KP_Insert |
90 |
65438 |
KP_Left |
83 |
65430 |
KP_Multiply |
63 |
65450 |
KP_Next |
89 |
65435 |
KP_Prior |
81 |
65434 |
KP_Right |
85 |
65432 |
KP_Subtract |
82 |
65453 |
KP_Up |
80 |
65431 |
Next |
105 |
65366 |
Num_Lock |
77 |
65407 |
Pause |
110 |
65299 |
Print |
111 |
65377 |
Prior |
99 |
65365 |
Right |
102 |
65363 |
Scroll_Lock |
78 |
65300 |
Shift_L |
50 |
65505 |
Shift_R |
62 |
65506 |
Tab |
23 |
65289 |
Up |
98 |
65362 |
Exemple:
can.bind('<Key>',clavier)
can.bind('<Return>',jouer)
def jouer(event): # la fonction appélé doit
toujours avoir le mot event
can1.destroy()
temps()
Pour dissocier un
événement d’un widget, l’on utilise la syntaxe suivante
Syntaxe.
widget.unbind('<modifier-evenement>')
Commentaires
Enregistrer un commentaire