From 2b71586c048c0610e525aeb1e03e0ff328b2bf08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Eng=C3=A9libert?= Date: Tue, 29 Oct 2024 18:28:39 +0100 Subject: [PATCH] tutorial --- README.md | 12 +- editor.py | 100 ++++++++-- makefile | 7 + skeleton.py | 21 +++ tutorial-head.html | 33 ++++ tutorial.html | 452 +++++++++++++++++++++++++++++++++++++++++++++ tutorial.md | 272 +++++++++++++++++++++++++++ tutorial.pdf | Bin 0 -> 95036 bytes 8 files changed, 880 insertions(+), 17 deletions(-) create mode 100755 makefile create mode 100644 skeleton.py create mode 100644 tutorial-head.html create mode 100644 tutorial.html create mode 100644 tutorial.md create mode 100644 tutorial.pdf diff --git a/README.md b/README.md index e9a2d97..41947e9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -https://code.activestate.com/recipes/579048-python-mandelbrot-fractal-with-tkinter/ -https://stackoverflow.com/questions/9886274/how-can-i-convert-canvas-content-to-an-image -https://tkdocs.com/tutorial/text.html -https://stackoverflow.com/questions/33084097/tkinter-really-all-complete-event-list -https://stackoverflow.com/questions/4172659/master-list-of-all-tkinter-events -https://www.tcl.tk/man/tcl8.5/TkCmd/bind.htm#M7 +* https://code.activestate.com/recipes/579048-python-mandelbrot-fractal-with-tkinter/ +* https://stackoverflow.com/questions/9886274/how-can-i-convert-canvas-content-to-an-image +* https://tkdocs.com/tutorial/text.html +* https://stackoverflow.com/questions/33084097/tkinter-really-all-complete-event-list +* https://stackoverflow.com/questions/4172659/master-list-of-all-tkinter-events +* https://www.tcl.tk/man/tcl8.5/TkCmd/bind.htm#M7 diff --git a/editor.py b/editor.py index 1c7909b..41fdd47 100644 --- a/editor.py +++ b/editor.py @@ -1,32 +1,111 @@ import network import tkinter as tk +from tkinter import ttk, filedialog, colorchooser import sys listen_addr = ("0.0.0.0", int(sys.argv[1])) -send_addr = ("192.168.0.255", int(sys.argv[2])) +send_addr = ("192.168.1.255", int(sys.argv[2])) sock = network.Sock() waiting_for_text = True root = tk.Tk() -area = tk.Text() -area.pack() +def foo(): + print("foo") + +root.option_add('*tearOff', False) +menubar = tk.Menu(root) +root['menu'] = menubar +menu_file = tk.Menu(menubar) +menu_edit = tk.Menu(menubar) +menubar.add_cascade(menu=menu_file, label='File') +menubar.add_cascade(menu=menu_edit, label='Edit') +menu_file.add_command(label='New', command=foo) + +area = tk.Text(root) +area.grid(column=0, row=1, sticky=(tk.N, tk.S, tk.E, tk.W)) + +area_scrolly = ttk.Scrollbar(root, orient=tk.VERTICAL, command=area.yview) +area_scrolly.grid(column=1, row=1, sticky=(tk.N, tk.S, tk.E, tk.W)) +area.configure(yscrollcommand=area_scrolly.set) + +canvas = tk.Canvas(root, background='white') +canvas.grid(column=2, row=1, sticky=(tk.N, tk.S, tk.E, tk.W)) + +canvas_last_x = 0 +canvas_last_y = 0 + +def canvas_save_pos(event): + global canvas_last_x, canvas_last_y + canvas_last_x = event.x + canvas_last_y = event.y + +def canvas_move(event): + canvas.create_line(canvas_last_x, canvas_last_y, event.x, event.y) + sock.send({"type":"create_line", "x1":canvas_last_x, "y1":canvas_last_y, "x2":event.x, "y2":event.y}, send_addr) + canvas_save_pos(event) + +def canvas_click(event): + print(colorchooser.askcolor(initialcolor='black')) + +canvas.bind("", canvas_save_pos) +canvas.bind("", canvas_move) +canvas.bind("", canvas_click) + +root.rowconfigure(1, weight=1) +root.columnconfigure(0, weight=1) +root.columnconfigure(2, weight=1) + +def on_save_bt(): + path = tk.filedialog.asksaveasfilename(filetypes=[("Fichier texte", ".txt")]) + file = open(path, "w") + file.write(area.get("1.0", "end")) + +toolbar = ttk.Frame(root) +toolbar.grid(column=0, row=0, columnspan=2, sticky=(tk.N, tk.S, tk.E, tk.W)) + +save_bt = ttk.Button(toolbar, text="Enregistrer", command=on_save_bt) +save_bt.grid(column=0, row=0, sticky=(tk.W)) + +open_bt = ttk.Button(toolbar, text="Ouvrir") +open_bt.grid(column=1, row=0, sticky=(tk.W)) def diff(old, new): index = 0 - if len(old) > len(new): - for i in range(len()): - pass + line = 1 + char = 0 + for i in range(min(len(old), len(new))): + if old[i] != new[i]: + return { + "type": "replace", + "start": str(line)+"."+str(char), + "end": 0, + "text": new[i:i+abs(len(old)-len(new))] + } + char += 1 + if old[i] == "\n": + line += 1 + char = 0 + + return { + "type": "insert", + "start": "end", + "text": new[i:i+abs(len(old)-len(new))] + } -def area_input(event): +def on_area_input(event): #print(area.get("1.0", "end")) print(event) - sock.send({"type":"insert", "start":"1.0", "text":area.get("1.0", "end")}, send_addr) + #sock.send({"type":"insert", "start":"1.0", "text":area.get("1.0", "end")}, send_addr) + sock.send({"type":"replace", "start":"1.0", "end":"end", "text":area.get("1.0", "end")}, send_addr) #if event.keycode == 25: # area.mark_set("insert", "1.0") +area.bind("", on_area_input) +area.bind("", on_area_input) + def on_request(r): global waiting_for_text print(r) @@ -41,9 +120,8 @@ def on_request(r): area.replace(c["start"], c["end"], c["text"]) elif c["type"] == "get": sock.send({"type":"set", "text":area.get("1.0", "end")}, send_addr) - area.insert("1.0", r[1]) - -area.bind("", area_input) + elif c["type"] == "create_line": + canvas.create_line(c["x1"], c["y1"], c["x2"], c["y2"]) sock.listen(listen_addr, on_request) diff --git a/makefile b/makefile new file mode 100755 index 0000000..2a9df7a --- /dev/null +++ b/makefile @@ -0,0 +1,7 @@ +all: tutorial.pdf + +tutorial.pdf: tutorial.html + wkhtmltopdf -s A4 --footer-center "[page] / [topage]" --footer-font-name "Libertinus Sans" --footer-font-size 11 --header-left "[subsection]" --header-right "[title]" --header-font-name "Libertinus Sans" --header-font-size 11 --margin-top 20mm --footer-spacing 7 --header-spacing 7 --margin-bottom 20mm tutorial.html tutorial.pdf + +tutorial.html: tutorial.md tutorial-head.html + pandoc tutorial.md -o tutorial.html --self-contained -M title="Tutoriel Tkinter" --highlight-style pygments -H tutorial-head.html || exit 1 diff --git a/skeleton.py b/skeleton.py new file mode 100644 index 0000000..bced63b --- /dev/null +++ b/skeleton.py @@ -0,0 +1,21 @@ +import network +import tkinter as tk +from tkinter import ttk +import sys + +listen_addr = ("0.0.0.0", 4444) +send_addr = ("192.168.1.255", 4444) + +sock = network.Sock() + +root = tk.Tk() + +def on_request(r): + c, a = r + print(c, a) + +sock.listen(listen_addr, on_request) + +sock.send({"message":"bonjour"}, send_addr) + +root.mainloop() diff --git a/tutorial-head.html b/tutorial-head.html new file mode 100644 index 0000000..a2e4e43 --- /dev/null +++ b/tutorial-head.html @@ -0,0 +1,33 @@ + diff --git a/tutorial.html b/tutorial.html new file mode 100644 index 0000000..ff4b48e --- /dev/null +++ b/tutorial.html @@ -0,0 +1,452 @@ + + + + + + + Tutoriel Tkinter + + + + +
+

Tutoriel Tkinter

+
+

Tutoriel Tkinter

+

Pour aller plus loin : TkDocs Tutorial

+

Code de base

+

Créer une fenêtre vide :

+
import tkinter as tk
+from tkinter import ttk
+
+root = tk.Tk()
+
+root.mainloop()
+

Ajouter des boutons dans la fenêtre :

+
import tkinter as tk
+from tkinter import ttk
+
+root = tk.Tk()
+
+bt1 = ttk.Button(root, text="Bonjour")
+bt1.grid(column=0, row=0)
+
+bt2 = ttk.Button(root, text="Au revoir")
+bt2.grid(column=1, row=0)
+
+root.mainloop()
+

Positionnement

+

On peut changer le nombre de colonnes ou de lignes occupées par un +widget en ajoutant les paramètres columnspan ou +rowspan en plus de column et +row.

+

Pour coller un widget au bord de la grille, on peut ajouter +sticky :

+
bt2.grid(column=1, row=0, sticky=(tk.W, tk.N))
+

sticky prend une liste de 0 à 4 éléments parmi :

+
    +
  • tk.E : East = droite
  • +
  • tk.N : North = haut
  • +
  • tk.S : South = bas
  • +
  • tk.W : West = gauche
  • +
+

Redimensionner la fenêtre

+

Il faut indiquer quelles lignes et colonnes doivent changer de taille +quand la fenêtre change de taille.

+

Dans cet exemple, ce sont la ligne 1 et la colonne 0.

+
root.rowconfigure(1, weight=1)
+root.columnconfigure(0, weight=1)
+

On peut appeler plusieurs fois ces fonctions pour choisir plusieurs +lignes et colonnes, et changer les weight pour modifier les +proportions.

+

Widgets

+

Tous les widgets peuvent être positionnés avec grid, de +la même manière que ci-dessus.

+

Label

+

Juste du texte.

+
label = ttk.Label(root, text="Je suis un texte. Wow.")
+

On peut aussi modifier le texte plus tard :

+
label_text = tk.StringVar()
+label["textvariable"] = label_text
+label_text.set("Le nouveau texte. Tout ça pour ça !")
+

Bouton

+

Un bouton qu’on peut cliquer.

+
def onclick():
+    print("On a cliqué")
+
+bt = ttk.Button(root, text="Cliquez-moi", command=onclick)
+

Image

+

Un bouton ou un label peut afficher une image :

+
img = tk.PhotoImage(file='image.png')
+label["image"] = img
+

Entrée de texte

+

Boîte dans laquelle on peut écrire une ligne de texte.

+
text = tk.StringVar()
+entry = ttk.Entry(root, textvariable=text)
+

Plus tard, on peut récupérer le texte :

+
print("L'utilisateur a écrit :", text.get())
+

Entrée de texte multiligne

+

Zone dans laquelle on peut écrire du texte en plusieurs lignes.

+
text = tk.Text(root)
+

Il y a plusieurs méthodes pour interagir avec le texte :

+
print(area.get("1.0", "end")) # obtenir tout le texte
+print(area.get("2.0", "8.0")) # le texte de la ligne 2 à la ligne 8
+area.replace("1.0", "end", "le nouveau texte") # remplacer du texte
+area.insert("1.0", "le nouveau texte") # insérer du texte
+

Barre de défilement

+

Certains widgets (Text) peuvent défiler avec la molette, +mais pour afficher la barre de défilement il faut un widget +supplémentaire.

+
scroll = ttk.Scrollbar(root, orient=tk.VERTICAL, command=mon_widget_qui_défile.yview)
+scroll.grid(column=1, row=0, sticky=(tk.N, tk.S, tk.E, tk.W))
+mon_widget_qui_défile.configure(yscrollcommand=scroll.set)
+

Cadre

+

Un cadre qui peut avoir une bordure et contenir d’autres widgets.

+
frame = ttk.Frame(root, borderwidth=5, relief="ridge", width=200, height=100)
+

Les options ne sont pas obligatoires.

+

Le cadre contient ses propres lignes et colonnes. Pour placer des +widgets dedans, il suffit de remplacer root par +frame en les créant.

+

Barre de menus

+

La barre de menus en haut de la fenêtre.

+
root.option_add('*tearOff', False)
+menubar = tk.Menu(root)
+root['menu'] = menubar
+
+menu_file = tk.Menu(menubar)
+menu_edit = tk.Menu(menubar)
+
+menubar.add_cascade(menu=menu_file, label='Fichier')
+menubar.add_cascade(menu=menu_edit, label='Édition')
+
+menu_file.add_command(label='Ouvrir', command=on_open)
+

Canevas

+

Le canevas est une zone de dessin.

+
canvas = tk.Canvas(root, background='white')
+

On peut y dessiner des formes :

+
canvas.create_line(x1, y1, x2, y2)
+canvas.create_line(x1, y1, x2, y2, fill="red", width=3, dash=6)
+canvas.create_rectangle(x1, y1, x2, y2, fill="red", outline="blue")
+canvas.create_oval(x1, y1, x2, y2, fill="red", outline="blue")
+

Événements

+

Quand il se passe quelque chose sur un widget, un événement est +généré. On peut écouter les événements de certains types, c’est-à-dire +lancer une fonction quand l’action se produit.

+

Par exemple, on affiche des informations quand une touche du clavier +est relâchée dans la zone de texte :

+
text = tk.Text(root)
+
+def onrelease(event):
+    print("On a frappé le clavier !")
+    print(event)
+
+area.bind("<KeyRelease>", onrelease)
+

On peut aussi utiliser les infos contenues dans l’événement, par +exemple event.keycode.

+

Liste des événements

+
    +
  • Souris +
      +
    • ButtonPress: clic enfoncé d’un bouton de la souris
    • +
    • Button-1: comme ButtonPress mais seulement +pour le clic gauche
    • +
    • Button-2: comme ButtonPress mais seulement +pour le clic molette
    • +
    • Button-3: comme ButtonPress mais seulement +pour le clic droit
    • +
    • ButtonRelease: clic relâché d’un bouton de la +souris
    • +
    • Double-1: double-clic gauche
    • +
    • Double-3: double-clic droit
    • +
    • Enter: le pointeur de la souris entre
    • +
    • Leave: le pointeur de la souris sort
    • +
    • Motion: le pointeur de la souris bouge dedans
    • +
    • B1-Motion: comme Motion mais avec le clic +gauche enfoncé
    • +
    • B2-Motion: comme Motion mais avec le clic +molette enfoncé
    • +
    • B3-Motion: comme Motion mais avec le clic +droit enfoncé
    • +
  • +
  • Clavier +
      +
    • KeyPress: appui d’une touche du clavier
    • +
    • KeyRelease: relâche d’une touche du clavier
    • +
  • +
  • Widget +
      +
    • Configure: le widget est créé
    • +
    • Expose: le widget est affiché ou réaffiché
    • +
    • FocusIn: le widget reçoit le focus
    • +
    • FocusOut: le widget pert le focus
    • +
  • +
+

Dialogues

+

On peut ouvrir des fenêtres pour dire ou demander des choses.

+

Fichiers

+

Demander où enregistrer un fichier, quel fichier ouvrir, choisir un +dossier.

+
from tkinter import filedialog
+
+filetypes = [
+    ("Texte", "*.txt"),
+    ("Image PNG", "*.png"),
+    ("Autre", "*.*")
+]
+chemin = tk.filedialog.asksaveasfilename(filetypes=filetypes)
+print(chemin)
+

On peut remplacer asksaveasfilename par +askopenfilename ou askdirectory.

+

Couleur

+

Demander de choisir une couleur.

+
from tkinter import colorchooser
+
+color = colorchooser.askcolor(initialcolor='black')
+print(color)
+

On peut aussi indiquer la couleur initiale avec sa notation +hexadécimale "#000000".

+ + diff --git a/tutorial.md b/tutorial.md new file mode 100644 index 0000000..e640efb --- /dev/null +++ b/tutorial.md @@ -0,0 +1,272 @@ +# Tutoriel Tkinter + +Pour aller plus loin : [TkDocs Tutorial](https://tkdocs.com/tutorial/index.html) + +## Code de base + +Créer une fenêtre vide : + +```python +import tkinter as tk +from tkinter import ttk + +root = tk.Tk() + +root.mainloop() +``` + +Ajouter des boutons dans la fenêtre : + +```python +import tkinter as tk +from tkinter import ttk + +root = tk.Tk() + +bt1 = ttk.Button(root, text="Bonjour") +bt1.grid(column=0, row=0) + +bt2 = ttk.Button(root, text="Au revoir") +bt2.grid(column=1, row=0) + +root.mainloop() +``` + +### Positionnement + +On peut changer le nombre de colonnes ou de lignes occupées par un widget en ajoutant les paramètres `columnspan` ou `rowspan` en plus de `column` et `row`. + +Pour coller un widget au bord de la grille, on peut ajouter `sticky` : + +```python +bt2.grid(column=1, row=0, sticky=(tk.W, tk.N)) +``` + +`sticky` prend une liste de 0 à 4 éléments parmi : + +* `tk.E` : _East_ = droite +* `tk.N` : _North_ = haut +* `tk.S` : _South_ = bas +* `tk.W` : _West_ = gauche + +### Redimensionner la fenêtre + +Il faut indiquer quelles lignes et colonnes doivent changer de taille quand la fenêtre change de taille. + +Dans cet exemple, ce sont la ligne 1 et la colonne 0. + +```python +root.rowconfigure(1, weight=1) +root.columnconfigure(0, weight=1) +``` + +On peut appeler plusieurs fois ces fonctions pour choisir plusieurs lignes et colonnes, et changer les `weight` pour modifier les proportions. + +## Widgets + +Tous les widgets peuvent être positionnés avec `grid`, de la même manière que ci-dessus. + +### Label + +Juste du texte. + +```python +label = ttk.Label(root, text="Je suis un texte. Wow.") +``` + +On peut aussi modifier le texte plus tard : + +```python +label_text = tk.StringVar() +label["textvariable"] = label_text +label_text.set("Le nouveau texte. Tout ça pour ça !") +``` + +### Bouton + +Un bouton qu'on peut cliquer. + +```python +def onclick(): + print("On a cliqué") + +bt = ttk.Button(root, text="Cliquez-moi", command=onclick) +``` + +### Image + +Un bouton ou un label peut afficher une image : + +```python +img = tk.PhotoImage(file='image.png') +label["image"] = img +``` + +### Entrée de texte + +Boîte dans laquelle on peut écrire une ligne de texte. + +```python +text = tk.StringVar() +entry = ttk.Entry(root, textvariable=text) +``` + +Plus tard, on peut récupérer le texte : + +```python +print("L'utilisateur a écrit :", text.get()) +``` + +### Entrée de texte multiligne + +Zone dans laquelle on peut écrire du texte en plusieurs lignes. + +```python +text = tk.Text(root) +``` + +Il y a plusieurs méthodes pour interagir avec le texte : + +```python +print(area.get("1.0", "end")) # obtenir tout le texte +print(area.get("2.0", "8.0")) # le texte de la ligne 2 à la ligne 8 +area.replace("1.0", "end", "le nouveau texte") # remplacer du texte +area.insert("1.0", "le nouveau texte") # insérer du texte +``` + +### Barre de défilement + +Certains widgets (`Text`) peuvent défiler avec la molette, mais pour afficher la barre de défilement il faut un widget supplémentaire. + +```python +scroll = ttk.Scrollbar(root, orient=tk.VERTICAL, command=mon_widget_qui_défile.yview) +scroll.grid(column=1, row=0, sticky=(tk.N, tk.S, tk.E, tk.W)) +mon_widget_qui_défile.configure(yscrollcommand=scroll.set) +``` + +### Cadre + +Un cadre qui peut avoir une bordure et contenir d'autres widgets. + +```python +frame = ttk.Frame(root, borderwidth=5, relief="ridge", width=200, height=100) +``` + +Les options ne sont pas obligatoires. + +Le cadre contient ses propres lignes et colonnes. +Pour placer des widgets dedans, il suffit de remplacer `root` par `frame` en les créant. + +### Barre de menus + +La barre de menus en haut de la fenêtre. + +```python +root.option_add('*tearOff', False) +menubar = tk.Menu(root) +root['menu'] = menubar + +menu_file = tk.Menu(menubar) +menu_edit = tk.Menu(menubar) + +menubar.add_cascade(menu=menu_file, label='Fichier') +menubar.add_cascade(menu=menu_edit, label='Édition') + +menu_file.add_command(label='Ouvrir', command=on_open) +``` + +### Canevas + +Le canevas est une zone de dessin. + +```python +canvas = tk.Canvas(root, background='white') +``` + +On peut y dessiner des formes : + +```python +canvas.create_line(x1, y1, x2, y2) +canvas.create_line(x1, y1, x2, y2, fill="red", width=3, dash=6) +canvas.create_rectangle(x1, y1, x2, y2, fill="red", outline="blue") +canvas.create_oval(x1, y1, x2, y2, fill="red", outline="blue") +``` + +## Événements + +Quand il se passe quelque chose sur un widget, un événement est généré. +On peut écouter les événements de certains types, c'est-à-dire lancer une fonction quand l'action se produit. + +Par exemple, on affiche des informations quand une touche du clavier est relâchée dans la zone de texte : + +```python +text = tk.Text(root) + +def onrelease(event): + print("On a frappé le clavier !") + print(event) + +area.bind("", onrelease) +``` + +On peut aussi utiliser les infos contenues dans l'événement, par exemple `event.keycode`. + +### Liste des événements + +* Souris + * `ButtonPress`: clic enfoncé d'un bouton de la souris + * `Button-1`: comme `ButtonPress` mais seulement pour le clic gauche + * `Button-2`: comme `ButtonPress` mais seulement pour le clic molette + * `Button-3`: comme `ButtonPress` mais seulement pour le clic droit + * `ButtonRelease`: clic relâché d'un bouton de la souris + * `Double-1`: double-clic gauche + * `Double-3`: double-clic droit + * `Enter`: le pointeur de la souris entre + * `Leave`: le pointeur de la souris sort + * `Motion`: le pointeur de la souris bouge dedans + * `B1-Motion`: comme `Motion` mais avec le clic gauche enfoncé + * `B2-Motion`: comme `Motion` mais avec le clic molette enfoncé + * `B3-Motion`: comme `Motion` mais avec le clic droit enfoncé +* Clavier + * `KeyPress`: appui d'une touche du clavier + * `KeyRelease`: relâche d'une touche du clavier +* Widget + * `Configure`: le widget est créé + * `Expose`: le widget est affiché ou réaffiché + * `FocusIn`: le widget reçoit le focus + * `FocusOut`: le widget pert le focus + +## Dialogues + +On peut ouvrir des fenêtres pour dire ou demander des choses. + +### Fichiers + +Demander où enregistrer un fichier, quel fichier ouvrir, choisir un dossier. + +```python +from tkinter import filedialog + +filetypes = [ + ("Texte", "*.txt"), + ("Image PNG", "*.png"), + ("Autre", "*.*") +] +chemin = tk.filedialog.asksaveasfilename(filetypes=filetypes) +print(chemin) +``` + +On peut remplacer `asksaveasfilename` par `askopenfilename` ou `askdirectory`. + +### Couleur + +Demander de choisir une couleur. + +```python +from tkinter import colorchooser + +color = colorchooser.askcolor(initialcolor='black') +print(color) +``` + +On peut aussi indiquer la couleur initiale avec sa notation hexadécimale `"#000000"`. diff --git a/tutorial.pdf b/tutorial.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0d1e952091b2e2af71c9b0821ac9d6cf5046f9b3 GIT binary patch literal 95036 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