⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).peer_create ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).peer_create ( )
DESCRIPTION.
Créé un éditeur de texte homologue d'un autre éditeur de texte,
SYNTAXE.
TXT_Editeur.peer_create ( homologue , attribut , option )
TXT_Editeur ⇨ instance quelconque de tkinter.Text ( ) [ OBLIGATOIRE ]
.peer_create ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
homologue ⇨ chemin identifiant l'homologue [ OBLIGATOIRE ]
attribut ⇨ configuration de l'homologue [ optionnel ]
option ⇨ options de l'homologue [ optionnel ]
REMARQUES.
homologue est une identification de l'éditeur de texte qui sera apparié à l'éditeur de texte appelant. homologue doit être un nom de chemin standardisé d'un controle dans tkinter. Voir ci-dessous pour plus de précisions.
attribut est un dict ( ) qui peut être composé de paire "attribut" : valeur permettant de modifier des attributs de l'éditeur de texte homologue pour le distinguer des son ancêtre. Les homologue étant des éditeurs des texte comme à ceux créés avec la classe tkinter.Text ( ), ils disposent donc des mêmes attributs que ceux disponibles pour tous éditeurs de texte.
option est un tuple ( ) indiquant les options à prendre en compte pour la création de l'homologue. Par défaut, un homologue est créé avec tout le contenu de son ancêtre, mais se comportement peut être modifié en le précisant dans option.
Les objets créés avec la classe tkinter.Text ( ) disposent d'un inventaire, séparé de toutes ses autres données, et relatif à l'ensemble de son contenu : texte, images, fenêtres d'insertion, balises, régions de formatage, historique des modification.
Bien que cet inventaire ne soit pas accessible directement, c'est à dire en dehors d'un éditeur de texte, plusieurs éditeurs de texte peuvent se partager un même inventaire, proposant ainsi des vues différentes du même inventaire. Ces objets sont appelés éditeurs de texte homologues ou plus simplement homologues. Ils peuvent être créés dans la même conteneur, ou dans un autre conteneur, et plus généralement sur des machines distantes d'un réseau, ce qui permet de visualiser à distance, en direct et sans codage, les modifications de contenu, par exemple pour une messagerie instantanée.
Toute modification du contenu d'un éditeur de texte est immédiatement transmis à tous ses homologues. Les contenus des d'homologues sont donc toujours identiques, puisqu'ils ont le même inventaire, quelque soit celui qui reçoit la modification. Toutefois, chaque homologue à ses propres index pour les balises : "insert", "current", "sel.first" et "sel.last". A noter aussi, que la destruction d'un homologue, n'entraine pas la destruction des ses autres homologues.
Dans tkinter la fenêtre principale reçoit le nom '.'. Une fenêtre enfant est nommée en fonction de sa fenêtre parent sous la forme '.enfant', où enfant est un nombre entier sous la forme d'une chaîne de caractères. Vient ensuite l'imbrication des conteneurs successifs (relation parent : enfants) et enfin le controle. Par exemple, le premier éditeur de texte, créé dans la fenêtre de la méthode tkinter.Tk ( ) et placé directement dans cette fenêtre, aura le nom '.!text1', le suivant aura le nom '.!text2' , '.!text3'. Voir la méthode commune tkinter.winfo_pathname ( ) pour plus de détail sur le nommage des chemins des controles dans tkinter.
Il est aussi possible de récupérer le nom d'un chemin lié à un éditeur de texte :
- en créant un premier éditeur de texte et en l'associant à une variable (TXT_Editeur = tkinter.Text ( parent )) ;
- en créant un second éditeur de texte et en l'associant à une variable (TXT_Peer = tkinter.Text ( parent )) ;
- en détruisant le second éditeur de texte avec sa méthode .destroy ( ) (TXT_Peer.destroy ( ))
- en utilisant la variable du second éditeur de texte pour créer un homologue (TXT_Editeur.peer_create ( TXT_Peer ))
EXEMPLE.
import tkinter
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
TXT_Editeur = tkinter.Text ( TKI_Principal , relief = "ridge" , bd = 3 , width = 30 , height = 8 )
TXT_Peer = tkinter.Text ( TKI_Principal )
TXT_Peer.destroy ( )
TXT_Editeur.peer_create ( TXT_Peer , { "bg" : "aqua" , "relief" : "sunken" , "bd" : 5 , "width" : 20 , "height" : 10 } )
TXT_Editeur.grid ( row = 0 , column = 0 , sticky = "nesw" )
TXT_Peer.grid ( row = 0 , column = 1 , rowspan = 2 , sticky = "nesw" )
BUT_Quitter.grid ( row = 1 , column = 0 , sticky = "nesw" )
TKI_Distant = tkinter.Toplevel ( )
TKI_Distant.geometry ( "+600+100" )
TXT_Homologue = tkinter.Text ( TKI_Distant )
TXT_Homologue.destroy ( )
TXT_Editeur.peer_create ( TXT_Homologue , { "fg" : "blue" , "bg" : "pink" , "font" : ( None , 14 , "bold") , "width" : 25 } )
TXT_Homologue.grid ( row = 0 , column = 0 , sticky = "nesw" )
TXT_Editeur.insert ( "1.0" , "LISTE DES HOMOLOGUES.\n" )
for khomologue in TXT_Editeur.peer_names ( ) : TXT_Editeur.insert ( "end" , f"{ khomologue }\n" )
for khomologue in TXT_Homologue.peer_names ( ) :
if khomologue not in TXT_Editeur.peer_names ( ) : TXT_Editeur.insert ( "end" , f"{ khomologue }\n" )
TXT_Editeur.insert ( "end" , "\nTapez votre texte ici .." )
TXT_Editeur.focus_set ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de