widgets
Un widgets est un petit objet graphique (boutons, champs de texte, cases à cocher...)Tkinter définit les widgets pouvant être utilisés dans une fenêtre.
Les labels
Rôle: afficher du texte dans une fenêtre, du texte. Ce texte ne peut pas être modifié par l'utilisateur.
Les boutons
Les boutons
Rôle: déclencher des actions selon le comportement de l'utilisateur
Les champs
Rôle: afficher une zone de texte dans une fenêtre, ce texte peut être modifié par l'utilisateur.
Les cases à cocher
Rôle: permettre des sélections parmi plusieurs choix
Les boutons radio
Rôle: permettre une sélection unique parmi plusieurs choix
Les listes déroulantes
Rôle: pour proposer une sélection unique parmi plusieurs choix, comme les boutons radio, mais avec une ergonomie différente.
Cadre, ou fenêtre ( Frame in English):
Rôle: diviser l'écran en zones, pour placer les informations.
Il existe d'autres options communes à la plupart des widgets (la couleur de fond
Il existe plusieurs widgets qui peuvent contenir d'autres widgets. Par exemple les cadres (frame).
bg, la couleur du widget fg, etc.) et d'autres plus spécifiques à un certain type de widget.Il existe plusieurs widgets qui peuvent contenir d'autres widgets. Par exemple les cadres (frame).
Reprenons un exemple simple, avec l'affichage d'un bouton :
# On importe Tkinter
from tkinter import *
# fonction hello affiche un message
def hello():
print ('message du Blerow!')
# On crée une fenêtre. Je l'appelle racine car c'est la racine de l'interface que je vais programmer
racine = Tk()
# un label est une ligne de texte , On affecte le label à la fenêtre racine
champ_label = Label(racine, text="Bonjour Blerow !")
# le pack permet d'associer le widget à l'environnement
champ_label.pack()
#creation d'un label qui utilise la commande hello()
champ_label2 = Label(racine, text='helloooo')
# le pack permet d'associer le widget à l'environnement
champ_label2.pack()
b1 = Button(racine, text='hello', command=hello)
b1.pack(side=LEFT)
# On affiche la fenêtre racine via une boucle
racine.mainloop()
J'ai cliqué plusieurs fois sur le bouton hello, à la console le message définit dans la fonction hello() s'affiche.
Le positionnement dans la fenêtre s'effectue lors de l'association à l'environnement b1.pack()
Le même exemple en rajoutant une case à cocher:
from tkinter import *
def case1():
if retour1.get():
print ("case 1 cochee intiale")
else:
print ("case 1 pas cochee init")
def case2():
print ("xcase2")
racine=Tk()
retour1=IntVar() # creation de variable-retour
retour2=IntVar()
bouton1=Checkbutton(racine, variable=retour1, text="Case 1", command=case1())
bouton1.pack()
bouton2=Checkbutton(racine, variable=retour2, text="Case 2", command=case2())
bouton2.pack()
if retour1.get(): # la variable 'retour' = 1 si la case est cochee, 0 sinon
print ("case 1 cochee intiale")
else:
print ("case 1 pas cochee init")
if retour2.get(): # la variable 'retour' = 1 si la case est cochee, 0 sinon
print ("case 2 cochee init ")
else:
print ("case 2 pas cochee init")
# boucle mainloop()
racine.mainloop()
if retour1.get(): # la variable 'retour' = 1 si la case est cochee, 0 sinon
print ("case 1 cochee boucle")
else:
print ("case 1 pas cochee boucle")
if retour2.get(): # la variabe 'retour' = 1 si la case est cochee, 0 sinon
print ("case 2 cochee boucle")
else:
print ("case 2 pas cochee boucle")
Insertion d'une image dans un frame
from tkinter import *
fenetre = Tk ()
photo = PhotoImage(file ='bandeau2.png')
espace_image = Canvas(fenetre, width =170, height =170, bg ='blue')
espace_image.grid(row=3 ,columnspan=2, column=0, padx =10, pady =10)
espace_image.create_image(100, 100, image =photo)
fenetre.mainloop ()
j'ai cherché des exemples un peu plus complexes et je suis tombé sur __init__
Kezako ?
__init__ est appelé dès la création de l'instance de la classe est créée, le premier argument de chaque méthode de classe, est toujours une référence à l'instance actuelle de la classe par convention, cet argument est toujours nommé self.


Aucun commentaire:
Enregistrer un commentaire