Fixes, IP list

This commit is contained in:
Pascal Engélibert 2024-10-30 17:07:15 +01:00
commit cd0bf3113e
3 changed files with 119 additions and 43 deletions

View file

@ -1,6 +1,14 @@
# Tutoriel Tkinter
Pour aller plus loin : [TkDocs Tutorial](https://tkdocs.com/tutorial/index.html)
**Prérequis** :
Il faut être un peu à l'aise avec le Python, au moins les variables, fonctions, manipulation des chaînes de caractères.
Si ce n'est pas le cas, [France-IOI](https://www.france-ioi.org/algo/chapters.php) propose une introduction ludique au Python.
Tkinter est une bibliothèque d'interface graphique, qui permet de créer des fenêtres sous Linux, Windows et Mac.
C'est une des plus simples à utiliser en Python.
Seulement elle est un peu vieille et trop peu intuitive, d'où ce tutoriel qui peut servir de mini-référence.
Pour aller plus loin : [TkDocs Tutorial](https://tkdocs.com/tutorial/index.html) (en anglais)
## Code de base
@ -64,7 +72,8 @@ On peut appeler plusieurs fois ces fonctions pour choisir plusieurs lignes et co
## Widgets
Tous les widgets peuvent être positionnés avec `grid`, de la même manière que ci-dessus.
Tous les widgets doivent être positionnés avec `grid`, de la même manière que ci-dessus.
Sans ça, ils ne seront pas affichés !
### Label
@ -128,21 +137,21 @@ 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
area.insert("1.0 +42 chars", "le nouveau texte")
area.insert("end -3 lines", "le nouveau texte")
print(text.get("1.0", "end")) # obtenir tout le texte
print(text.get("2.0", "8.0")) # le texte de la ligne 2 à la ligne 8
text.replace("1.0", "end", "le nouveau texte") # remplacer du texte
text.insert("1.0", "le nouveau texte") # insérer du texte
text.insert("1.0 +42 chars", "le nouveau texte")
text.insert("end -3 lines", "le nouveau texte")
```
Pour mettre en forme certaines parties du texte, on peut utiliser des tags :
```python
area.tag_configure("fond_rouge", background="#ffaaaa")
area.tag_configure("insistance", foreground="#008800", underline=True)
text.tag_configure("fond_rouge", background="#ffaaaa")
text.tag_configure("insistance", foreground="#008800", underline=True)
area.insert("1.0", "ce texte sera sur fond rouge", "fond_rouge")
text.insert("1.0", "ce texte sera sur fond rouge", "fond_rouge")
text.tag_add("insistance", "1.3", "1.8")
```
@ -220,7 +229,7 @@ def onrelease(event):
print("On a frappé le clavier !")
print(event)
area.bind("<KeyRelease>", onrelease)
text.bind("<KeyRelease>", onrelease)
```
On peut aussi utiliser les infos contenues dans l'événement, par exemple `event.keycode`.