⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Canvas
tkinter.Canvas ( ).yview ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Canvas
tkinter.Canvas ( ).yview ( )
DESCRIPTION.
Retourne un tuple ( ) de 2 éléments délimitant la portion verticale visible d'une zone de dessin.
SYNTAXE.
TPL_Visible = CAN_Toile.yview ( )
TPL_Visible = ⇨ variable qui recevra la valeur [ optionnel ]
CAN_Toile ⇨ instance quelconque de tkinter.Canvas ( ) [ OBLIGATOIRE ]
.yview ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
REMARQUES.
La méthode tkinter.Canvas ( ).yview ( ) retourne un tuple ( ) contenant 2 float ( ) compris entre 0.0 et 1.0, où :
- 0.0 représente l'ordonnée du bord haut de la zone d'accessibilité de la zone de dessin et ;
- 1.0 l'ordonnée du bord bas de la zone d'accessibilité de la zone de dessin.
L'intervalle (0, 1) représente donc la hauteur totale, en pixels, de la zone d'accessibilité défini avec l'attribut scrollregion de la zone de dessin. Les 2 éléments du tuple ( ) désignent donc les 2 positions relatives, de début et de fin, de l'intervalle vertical de la partie de actuellement visible de la zone de dessin. La partie de la zone de dessin comprise entre :
- 0.0 et le premier élément du tuple ( ) est partie cachée au dessus 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 au dessous de la partie actuellement visible.
La hauteur totale, en pixels, de la zone d'accessibilité est égale à : scrollregion [ 3 ] - scrollregion [ 1 ], scrollregion étant un attribut de la zone de dessin. La position réelle, en pixels, de l'ordonnée du bord :
- haut de la partie visible équivaut à la hauteur total d'accessibilité multipliée par le premier élément du tuple ( ) et ;
- bas de la partie visible équivaut à la hauteur total d'accessibilité multipliée par le deuxième élément du tuple ( ).
Les valeurs contenues dans le tuple ( ), retourné par la méthode tkinter.Canvas ( ).yview ( ), seront transmises à la barre de d’ascenseur verticale liée à la zone de dessin via :
- l'attribut ycrollcommand de la zone de dessin et ;
- l'attribut command de la barre de d’ascenseur.
Voir aussi Tutoriel de Canvas : faire défiler une zone de dessin avec des ascenseurs pour un complément d'informations.
EXEMPLE.
import tkinter
def FNC_Action ( event ) :
CAN_Toile.xview_moveto ( SCA_Abscisse.get ( ) )
CAN_Toile.yview_moveto ( SCA_Ordonnee.get ( ) )
kregion = [ int ( kvaleur ) for kvaleur in CAN_Toile [ "scrollregion" ].split ( ) ]
klargeur = kregion [ 2 ] - kregion [ 0 ]
kdebut = int ( klargeur * CAN_Toile.xview ( ) [ 0 ] ) + kregion [ 0 ]
kfin = int ( klargeur * CAN_Toile.xview ( ) [ 1 ] ) + kregion [ 0 ]
kmessage = f"La partie horizontale visible sur { klargeur } pixels :\nva du pixel { kdebut } au pixel { kfin }."
LAB_Horizontal [ "text" ] = kmessage
khauteur = kregion [ 3 ] - kregion [ 1 ]
kdebut = int ( khauteur * CAN_Toile.yview ( ) [ 0 ] ) + kregion [ 1 ]
kfin = int ( khauteur * CAN_Toile.yview ( ) [ 1 ] ) + kregion [ 1 ]
kmessage = f"La partie verticale visible sur { khauteur } pixels :\nva du pixel { kdebut } au pixel { kfin }."
LAB_Vertical [ "text" ] = kmessage
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
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 )
CAN_Toile = tkinter.Canvas ( TKI_Principal , bg = "white" , scrollregion = ( -200 , -100 , 1000 , 900 ) , width = 400 , height = 250 )
for kligne in range ( 9 ) :
CAN_Toile.create_line ( 0 , ( kligne * 100 ) , 800 , ( kligne * 100 ) , fill = "black" )
CAN_Toile.create_line ( ( kligne * 100 ) , 0 , ( kligne * 100 ) , 800 , fill = "black" )
CAN_Toile.create_rectangle ( 10 , 10 , 110 , 110 , fill = "pink" )
CAN_Toile.create_rectangle ( 290 , 10 , 390 , 110 , fill = "red" )
CAN_Toile.create_rectangle ( 10 , 290 , 110 , 390 , fill = "green" )
CAN_Toile.create_rectangle ( 290 , 290 , 390 , 390 , fill = "blue" )
CAN_Toile.create_rectangle ( 180 , 130 , 570 , 170 , fill = "yellow" )
CAN_Toile.create_rectangle ( 130 , 180 , 170 , 570 , fill = "orange" )
SCA_Abscisse.grid ( row = 0 , column = 1 , sticky = "nesw" )
SCA_Ordonnee.grid ( row = 1 , column = 0 , sticky = "nesw" )
CAN_Toile.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_Quitter.grid ( row = 4 , column = 1 , sticky = "nesw" )
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