Python 3 - 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 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 est bouclée, 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éthode 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: les marques, les onglets et les 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éthode 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éthode 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 -

# !/usr/bin/python3
from tkinter import *

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()

Résultat

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -