Python - Texte Tkinter
Les widgets de texte fournissent des fonctionnalités avancées qui vous permettent de modifier un texte multiligne et de mettre en forme la manière dont il doit être affiché, comme en modifiant sa couleur et sa police.
Vous pouvez également utiliser des structures élégantes telles que des tabulations et des marques pour localiser des sections spécifiques du texte et appliquer des modifications à ces zones. De plus, vous pouvez incorporer des fenêtres et des images dans le texte car ce widget a été conçu pour gérer à la fois le texte brut et formaté.
Syntaxe
Voici la syntaxe simple pour créer ce widget -
w = Text ( master, option, ... )
Paramètres
master - Ceci représente la fenêtre parente.
options- Voici la liste des options les plus couramment utilisées pour ce widget. Ces options peuvent être utilisées sous forme de paires clé-valeur séparées par des virgules.
N ° Sr. | Option et description |
---|---|
1 | bg La couleur d'arrière-plan par défaut du widget de texte. |
2 | bd La largeur de la bordure autour du widget de texte. La valeur par défaut est de 2 pixels. |
3 | cursor Le curseur qui apparaîtra lorsque la souris sera sur le widget de texte. |
4 | exportselection Normalement, le texte sélectionné dans un widget de texte est exporté pour être la sélection dans le gestionnaire de fenêtres. Définissez exportselection = 0 si vous ne souhaitez pas ce comportement. |
5 | font La police par défaut du texte inséré dans le widget. |
6 | fg La couleur utilisée pour le texte (et les bitmaps) dans le widget. Vous pouvez changer la couleur des régions marquées; cette option n'est que la valeur par défaut. |
sept | height La hauteur du widget en lignes (pas en pixels!), Mesurée en fonction de la taille de police actuelle. |
8 | highlightbackground La couleur de la mise en surbrillance du focus lorsque le widget de texte n'a pas le focus. |
9 | highlightcolor La couleur de la mise en évidence du focus lorsque le widget de texte a le focus. |
dix | highlightthickness L'épaisseur de la mise en évidence de la mise au point. La valeur par défaut est 1. Réglez Highlightthickness = 0 pour supprimer l'affichage de la mise au point en surbrillance. |
11 | insertbackground La couleur du curseur d'insertion. La valeur par défaut est le noir. |
12 | insertborderwidth Taille de la bordure 3-D autour du curseur d'insertion. La valeur par défaut est 0. |
13 | insertofftime Le nombre de millisecondes pendant lequel le curseur d'insertion est désactivé pendant son cycle de clignotement. Réglez cette option sur zéro pour supprimer le clignotement. La valeur par défaut est 300. |
14 | insertontime Le nombre de millisecondes pendant lesquelles le curseur d'insertion est activé pendant son cycle de clignotement. La valeur par défaut est 600. |
15 | insertwidth Largeur du curseur d'insertion (sa hauteur est déterminée par l'élément le plus haut de sa ligne). La valeur par défaut est de 2 pixels. |
16 | padx La taille du remplissage interne ajouté à gauche et à droite de la zone de texte. La valeur par défaut est d'un pixel. |
17 | pady La taille du remplissage interne ajouté au-dessus et au-dessous de la zone de texte. La valeur par défaut est d'un pixel. |
18 | relief L'apparence 3D du widget de texte. La valeur par défaut est relief = SUNKEN. |
19 | selectbackground La couleur d'arrière-plan à utiliser pour afficher le texte sélectionné. |
20 | selectborderwidth La largeur de la bordure à utiliser autour du texte sélectionné. |
21 | spacing1 Cette option spécifie la quantité d'espace vertical supplémentaire placée au-dessus de chaque ligne de texte. Si une ligne est bouclée, cet espace n'est ajouté qu'avant la première ligne qu'il occupe à l'écran. La valeur par défaut est 0. |
22 | spacing2 Cette option spécifie la quantité d'espace vertical supplémentaire à ajouter entre les lignes de texte affichées lorsqu'une ligne logique se termine. La valeur par défaut est 0. |
23 | spacing3 Cette option spécifie combien d'espace vertical supplémentaire est ajouté sous chaque ligne de texte. Si une ligne se retourne, cet espace n'est ajouté qu'après la dernière ligne qu'il occupe à l'écran. La valeur par défaut est 0. |
24 | state Normalement, les widgets de texte répondent aux événements du clavier et de la souris; set state = NORMAL pour obtenir ce comportement. Si vous définissez state = DISABLED, le widget texte ne répondra pas et vous ne pourrez pas non plus modifier son contenu par programme. |
25 | tabs Cette option contrôle la manière dont les caractères de tabulation positionnent le texte. |
26 | width La largeur du widget en caractères (pas en pixels!), Mesurée en fonction de la taille de police actuelle. |
27 | wrap Cette option contrôle l'affichage des lignes trop larges. Définissez wrap = WORD et il coupera la ligne après le dernier mot qui conviendra. Avec le comportement par défaut, wrap = CHAR, toute ligne qui devient trop longue sera interrompue à n'importe quel caractère. |
28 | xscrollcommand Pour rendre le widget texte défilable horizontalement, définissez cette option sur la méthode set () de la barre de défilement horizontale. |
29 | yscrollcommand Pour rendre le widget texte défilable verticalement, définissez cette option sur la méthode set () de la barre de défilement verticale. |
Méthodes
Les objets texte ont ces méthodes -
N ° Sr. | Méthodes et description |
---|---|
1 | delete(startindex [,endindex]) Cette méthode supprime un caractère spécifique ou une plage de texte. |
2 | get(startindex [,endindex]) Cette méthode renvoie un caractère spécifique ou une plage de texte. |
3 | index(index) Renvoie la valeur absolue d'un index basé sur l'index donné. |
4 | insert(index [,string]...) Cette méthode insère des chaînes à l'emplacement d'index spécifié. |
5 | see(index) Cette méthode renvoie true si le texte situé à la position d'index est visible. |
Les widgets de texte prennent en charge trois structures d'assistance distinctes: marques, tabulations et index -
Les marques sont utilisées pour marquer les positions entre deux caractères dans un texte donné. Nous avons les méthodes suivantes disponibles lors de la manipulation des marques -
N ° Sr. | Méthodes et description |
---|---|
1 | index(mark) Renvoie l'emplacement de la ligne et de la colonne d'une marque spécifique. |
2 | mark_gravity(mark [,gravity]) Renvoie la gravité de la marque donnée. Si le deuxième argument est fourni, la gravité est définie pour la marque donnée. |
3 | mark_names() Renvoie toutes les marques du widget Texte. |
4 | mark_set(mark, index) Informe une nouvelle position de la marque donnée. |
5 | mark_unset(mark) Supprime la marque donnée du widget Texte. |
Les balises sont utilisées pour associer des noms à des régions de texte, ce qui facilite la tâche de modifier les paramètres d'affichage de zones de texte spécifiques. Les balises sont également utilisées pour lier les rappels d'événements à des plages de texte spécifiques.
Voici les méthodes disponibles pour gérer les onglets -
N ° Sr. | Méthodes et description |
---|---|
1 | tag_add(tagname, startindex[,endindex] ...) Cette méthode balise soit la position définie par startindex, soit une plage délimitée par les positions startindex et endindex. |
2 | tag_config Vous pouvez utiliser cette méthode pour configurer les propriétés des balises, qui incluent, justifient (au centre, à gauche ou à droite), des onglets (cette propriété a la même fonctionnalité que la propriété des onglets du widget Texte) et soulignent (utilisé pour souligner le texte balisé) . |
3 | tag_delete(tagname) Cette méthode est utilisée pour supprimer et supprimer une balise donnée. |
4 | tag_remove(tagname [,startindex[.endindex]] ...) Après avoir appliqué cette méthode, la balise donnée est supprimée de la zone fournie sans supprimer la définition de balise réelle. |
Exemple
Essayez vous-même l'exemple suivant -
from Tkinter import *
def onclick():
pass
root = Tk()
text = Text(root)
text.insert(INSERT, "Hello.....")
text.insert(END, "Bye Bye.....")
text.pack()
text.tag_add("here", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("here", background="yellow", foreground="blue")
text.tag_config("start", background="black", foreground="green")
root.mainloop()
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -