ateliers:robotique:les_bases_de_tkinter
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
ateliers:robotique:les_bases_de_tkinter [2023/02/13 15:12] – [traduisons :] 2a02:a03f:c67b:d100:7da1:ecb6:ce07:cfe6 | ateliers:robotique:les_bases_de_tkinter [2024/03/25 14:02] (Version actuelle) – [traduisons :] 109.133.206.189 | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
{{: | {{: | ||
- | Ecrire | + | Écrire |
//" | //" | ||
Ligne 10: | Ligne 10: | ||
Par défaut, quand nous exécutons notre code dans un IDE comme Pycharm, celui-ci se lance dans le terminal.\\ | Par défaut, quand nous exécutons notre code dans un IDE comme Pycharm, celui-ci se lance dans le terminal.\\ | ||
Avouer que ce n'est pas fort pratique!\\ | Avouer que ce n'est pas fort pratique!\\ | ||
- | Pour que notre programme soit plus convivial et surtout ergonomique, | + | Pour que notre programme soit plus convivial et surtout ergonomique, |
Tkinter est un module de base intégré dans Python , normalement vous n'avez rien à faire pour pouvoir l' | Tkinter est un module de base intégré dans Python , normalement vous n'avez rien à faire pour pouvoir l' | ||
Ligne 17: | Ligne 17: | ||
Pour utiliser la librairie, nous devons au préalable l' | Pour utiliser la librairie, nous devons au préalable l' | ||
- | Pour cela, rien de plus simple, nous effectuons la requête via la commande PIP\\ | + | Pour cela, rien de plus simple, nous effectuons la requête via la commande PIP.\\ |
- | Si vous n'avez pas encore utilisé la commande PIP, vous pouvez vous référer à[[ateliers: | + | Si vous n'avez pas encore utilisé la commande PIP, vous pouvez vous référer à [[ateliers: |
Pour cela, entrer la commande dans votre terminal | Pour cela, entrer la commande dans votre terminal | ||
Ligne 36: | Ligne 36: | ||
<code python> | <code python> | ||
- | from tkinter | + | import |
- | fenetre = Tk() | + | fenetre = tk.Tk() |
- | label = Label(fenetre, | + | label = tk.Label(fenetre, |
label.pack() | label.pack() | ||
Ligne 52: | Ligne 52: | ||
<code python> | <code python> | ||
- | from tkinter | + | import |
</ | </ | ||
- | Cela signifie que, **depuis** (from) **tkinter** | + | Cela signifie que tu importes |
Nous créons ensuite une variable nommée " | Nous créons ensuite une variable nommée " | ||
Ligne 61: | Ligne 61: | ||
==== Entrée/ | ==== Entrée/ | ||
+ | <code python> | ||
# entrée | # entrée | ||
- | value = StringVar() | + | value = StringVar() |
value.set(" | value.set(" | ||
- | entree = Entry(fenetre, | + | entree = tk.Entry(fenetre, |
entree.pack() | entree.pack() | ||
+ | </ | ||
+ | ==== Récupérer la valeur d'un input ==== | ||
+ | |||
+ | Pour récupérer la valeur d'un input il vous faudra utiliser la méthode get() : | ||
+ | |||
+ | <code python> | ||
+ | def recupere(): | ||
+ | showinfo(" | ||
+ | |||
+ | value = StringVar() | ||
+ | value.set(" | ||
+ | entree = Entry(fenetre, | ||
+ | entree.pack() | ||
+ | |||
+ | bouton = Button(fenetre, | ||
+ | bouton.pack() | ||
+ | </ | ||
+ | |||
+ | ==== La pasition des boutons ==== | ||
+ | |||
+ | Nous pouvons placer nos boutons sur une grille. | ||
+ | |||
+ | <code python> | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | </ | ||
+ | |||
+ | <code python> | ||
+ | clear = Button(btns_frame, | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ==== La grille ==== | ||
+ | |||
+ | Il est possible de placer les éléments en raisonnant en grille: | ||
+ | |||
+ | Pour cela, nous imaginons dans notre tête des colonnes (verticales) et des lignes (horizontales).\\ | ||
+ | La colonne se dit **row** et la ligne se dit **colomn** | ||
+ | Pour positionner une boutons en haut à gauche de notre fenêtre, nous lui passons en paramètre **row = 1** et en **colomn = 1** | ||
+ | |||
+ | |||
+ | |||
+ | <code python> | ||
+ | for ligne in range(5): | ||
+ | for colonne in range(5): | ||
+ | Button(fenetre, | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Dans cette exemple, nous créons en mémoire la grille que nous allons utiliser par la suite pour positionner les boutons. | ||
+ | ==== Les listes ==== | ||
+ | |||
+ | Les listes permettent de récupérer une valeur sélectionnée par l' | ||
+ | |||
+ | <code python> | ||
+ | # liste | ||
+ | liste = Listbox(fenetre) | ||
+ | liste.insert(1, | ||
+ | liste.insert(2, | ||
+ | liste.insert(3, | ||
+ | liste.insert(4, | ||
+ | liste.insert(5, | ||
+ | |||
+ | liste.pack() | ||
+ | </ | ||
+ | |||
+ | ==== Canvas ==== | ||
+ | |||
+ | Un canvas (toile, tableau en français) est un espace dans lequel vous pouvez dessiner ou écrire ce que vous voulez: | ||
+ | |||
+ | <code python> | ||
+ | # canvas | ||
+ | canvas = Canvas(fenetre, | ||
+ | ligne1 = canvas.create_line(75, | ||
+ | ligne2 = canvas.create_line(0, | ||
+ | txt = canvas.create_text(75, | ||
+ | canvas.pack() | ||
+ | </ | ||
+ | |||
+ | Mais nous pouvons aussi créer d' | ||
+ | <code python> | ||
+ | create_arc() | ||
+ | create_bitmap() | ||
+ | create_image() | ||
+ | create_line() | ||
+ | create_oval() | ||
+ | create_polygon() | ||
+ | create_rectangle() | ||
+ | create_text() | ||
+ | create_window() | ||
+ | </ | ||
+ | |||
+ | Si vous voulez changer les coordonnées d'un élement crée dans le canevas, vous pouvez utiliser la méthode coords . | ||
+ | <code python> | ||
+ | canvas.coords(élément, | ||
+ | </ | ||
+ | |||
+ | Pour supprimer un élément, nous pouvons utiliser la méthode **delet** | ||
+ | <code python> | ||
+ | canvas.delete(élément) | ||
+ | </ | ||
+ | |||
+ | ==== PanedWindow ==== | ||
+ | |||
+ | Le panedwindow est un conteneur qui peut contenir autant de panneaux que nécessaire disposé horizontalement ou verticalement. | ||
+ | |||
+ | <code python> | ||
+ | p = PanedWindow(fenetre, | ||
+ | p.pack(side=TOP, | ||
+ | p.add(Label(p, | ||
+ | p.add(Label(p, | ||
+ | p.add(Label(p, | ||
+ | p.pack() | ||
+ | </ | ||
+ | |||
+ | ===== Pour aller plus loin ===== | ||
+ | |||
+ | ==== Barre de menu ==== | ||
+ | |||
+ | Il est possible de créer une barre de menu comme-ceci: | ||
+ | |||
+ | <code python> | ||
+ | |||
+ | def alert(): | ||
+ | showinfo(" | ||
+ | |||
+ | menubar = Menu(fenetre) | ||
+ | |||
+ | menu1 = Menu(menubar, | ||
+ | menu1.add_command(label=" | ||
+ | menu1.add_command(label=" | ||
+ | menu1.add_separator() | ||
+ | menu1.add_command(label=" | ||
+ | menubar.add_cascade(label=" | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | menu2 = Menu(menubar, | ||
+ | menu2.add_command(label=" | ||
+ | menu2.add_command(label=" | ||
+ | menu2.add_command(label=" | ||
+ | menubar.add_cascade(label=" | ||
+ | |||
+ | menu3 = Menu(menubar, | ||
+ | menu3.add_command(label=" | ||
+ | menubar.add_cascade(label=" | ||
+ | |||
+ | fenetre.config(menu=menubar) | ||
+ | </ | ||
+ | |||
+ | La grille: \\ | ||
+ | Il est possible de placer les éléments en raisonnant en grille: | ||
+ | |||
+ | <code python> | ||
+ | for ligne in range(5): | ||
+ | for colonne in range(5): | ||
+ | Button(fenetre, | ||
+ | </ | ||
+ | |||
+ | <code python> | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | Button(fenetre, | ||
+ | </ | ||
ateliers/robotique/les_bases_de_tkinter.1676297571.txt.gz · Dernière modification : 2023/02/13 15:12 de 2a02:a03f:c67b:d100:7da1:ecb6:ce07:cfe6