⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).xview ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).xview ( )
DESCRIPTION.
Retourne un tuple ( ) de 2 éléments délimitant la portion horizontale visible d'un éditeur de texte.
SYNTAXE.
TPL_Visible = TXT_Editeur.xview ( )
TPL_Visible = ⇨ variable qui recevra la valeur [ optionnel ]
TXT_Editeur ⇨ instance quelconque de tkinter.Text ( ) [ OBLIGATOIRE ]
.xview ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
REMARQUES.
La méthode tkinter.Text ( ).xview ( ) retourne un tuple ( ) contenant 2 float ( ) compris entre 0.0 et 1.0, où :
- 0.0 représente du bord gauche où débutent les lignes de l'éditeur de texte ;
- 1.0 représente du bord droit où se terminent les lignes de l'éditeur de texte.
L'intervalle (0, 1) représente la largeur de la ligne la plus longue, actuellement dans la fenêtre de visibilité, de l'éditeur de texte. Les 2 éléments du tuple ( ) désignent donc les 2 positions relatives, de début et de fin, de l'intervalle horizontal de la partie de actuellement visible de l'éditeur de texte. La partie de l'éditeur de texte comprise entre :
- 0.0 et le premier élément du tuple ( ) est partie cachée à gauche de la partie actuellement visible ;
- le premier élément du tuple ( ) et le deuxième élément du tuple ( ) est la zone actuelle de visibilité ;
- le deuxième élément du tuple ( ) et 1.0 est partie cachée à droite de la partie actuellement visible.
L'intervalle décrit, par le tuple ( ) retourné, se rapporte à la taille de la ligne la plus longue actuellement visible, et non à la ligne la plus longue de tout l'éditeur de texte. Les éléments du tuple ( ) peuvent donc varier, si le contenu défile de verticalement, modifiant ainsi la ligne de référence, c'est-à-dire la ligne la plus longue présente dans la fenêtre de visibilité, définit par les attributs width et height de l'éditeur de texte.
Si les lignes ont toutes une longueur inférieure à l'attribut width de l'éditeur de texte, ou si l'attribut wrap à une valeur différente de "none", le tuple ( ) retourné est ( 0.0 , 1.0 ) c'est-à-dire 100% de la longueur des lignes.
Les valeurs contenues dans le tuple ( ), retourné par la méthode tkinter.Text ( ).xview ( ), seront transmises à la barre de d’ascenseur horizontale liée à l'éditeur de texte via :
- l'attribut xcrollcommand de l'éditeur de texte et ;
- l'attribut command de la barre de d’ascenseur.
A noter que les formes suivantes, bien que ne levant pas d'exception, ne doivent plus être employées :
- tkinter.Text ( ).xview ( "moveto" , abscisse ) est à remplacer par tkinter.Text ( ).xview_moveto ( abscisse ) ;
- tkinter.Text ( ).xview ( "scroll" , facteur , bloc ) est à remplacer par tkinter.Text ( ).xview_scroll ( facteur , bloc ).
Voir aussi Tutoriel de Text : faire défiler un éditeur de texte avec des ascenseurs pour un complément d'informations.
EXEMPLE.
import tkinter , tkinter.filedialog
def FNC_Action ( event ) :
TXT_Editeur.xview_moveto ( SCA_Abscisse.get ( ) )
TXT_Editeur.yview_moveto ( SCA_Ordonnee.get ( ) )
kdebut = int ( TXT_Editeur.xview ( ) [ 0 ] * 100 )
kfin = int ( TXT_Editeur.xview ( ) [ 1 ] * 100 )
LAB_Horizontal [ "text" ] = f"La partie horizontale visible va :\n{ kdebut }% à { kfin }%."
kdebut = int ( TXT_Editeur.yview ( ) [ 0 ] * 100 )
kfin = int ( TXT_Editeur.yview ( ) [ 1 ] * 100 )
LAB_Vertical [ "text" ] = f"La partie verticale visible va :\n{ kdebut }% à { kfin }%."
def FNC_Ouvrir ( ) :
kextentions = [ ( "texte" , ".txt" ) , ( "python" , ".py" ) ]
kfichier = tkinter.filedialog.askopenfilename ( title = "Ouvrir" , filetypes = kextentions )
if len ( kfichier ) < 1 : return
TXT_Editeur.delete ( "1.0" , "end" )
with open ( kfichier ) as FIL_Fichier : TXT_Editeur.insert ( "end" , FIL_Fichier.read ( ) )
FNC_Action ( None )
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter le test" , command = TKI_Principal.destroy )
BUT_Ouvrir = tkinter.Button ( TKI_Principal , text = "Ouvrir un fichier" , command = FNC_Ouvrir )
SCA_Abscisse = tkinter.Scale ( TKI_Principal , orient = "horizontal" , to = 1 , resolution = .05 , command = FNC_Action )
SCA_Ordonnee = tkinter.Scale ( TKI_Principal , to = 1 , resolution = .05 , command = FNC_Action )
LAB_Horizontal = tkinter.Label ( TKI_Principal , relief = "solid" , height = 3 )
LAB_Vertical = tkinter.Label ( TKI_Principal , relief = "solid" , height = 3 )
TXT_Editeur = tkinter.Text ( TKI_Principal , wrap = "none" , width = 40 , height = 12 )
SCA_Abscisse.grid ( row = 0 , column = 1 , sticky = "nesw" )
SCA_Ordonnee.grid ( row = 1 , column = 0 , sticky = "nesw" )
TXT_Editeur.grid ( row = 1 , column = 1 , sticky = "nesw" )
LAB_Horizontal.grid ( row = 2 , column = 1 , sticky = "nesw" )
LAB_Vertical.grid ( row = 3 , column = 1 , sticky = "nesw" )
BUT_Ouvrir.grid ( row = 4 , column = 1 , sticky = "nesw" )
BUT_Quitter.grid ( row = 5 , column = 1 , sticky = "nesw" )
TXT_Editeur.insert ( "1.0" , "Tapez un texte ou\nouvrez un fichier txt ou py." )
SCA_Abscisse.set ( .25 )
SCA_Ordonnee.set ( .25 )
FNC_Action ( None )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de