⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ liste des méthodes
tkinter.winfo_parent ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ liste des méthodes
tkinter.winfo_parent ( )
DESCRIPTION.
Retourne le nom du conteneur parent du controle.
SYNTAXE.
Variable = widget.winfo_pathname ( controle )
Variable = ⇨ variable qui recevra la valeur [ optionnel ]
widget ⇨ controle quelconque de l'interface [ OBLIGATOIRE ]
.winfo_pathname ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
controle ⇨ controle de référence [ OBLIGATOIRE ]
REMARQUES.
controle doit être un controle vivant. si controle n’existe pas, ou plus, Python lèvera une exception. Voir tkinter.winfo_exists ( ).
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. Une fenêtre enfant d'une fenêtre enfant recevra un nom suivant le même principe, sous la forme '.enfant.enfant'. Vient ensuite l'imbrication des conteneurs successifs (relation parent : enfants) et enfin le controle. Par exemple, le premier cadre créé, par défaut, aura le nom '.enfant.enfant.!frame', le suivant aura le nom '.enfant.enfant.!frame2' si le deuxième cadre n'est pas dans le premier, ou '.enfant.enfant.!frame.!frame2' si le deuxième cadre est insérer dans le premier, et ainsi de suite. Le premier bouton à l'intérieur du premier cadre sera nommé, par exemple, '.enfant'.!frame.!button', etc.
Par convention, on utilise la fenêtre créée avec tkinter.Tk ( ) pour l'utilisation de cette méthode.
EXEMPLE.
import tkinter
def FNC_Donnees ( ) :
# --- RaZ de la liste des donnees du controle ---
LAB_Pointeur [ "text" ] = f"Position du ponteur : { TKI_Principal.winfo_pointerxy ( ) }"
BOX_Donnees.delete ( 0 , "end" )
# --- identification du controle ---
kpointeurx = TKI_Principal.winfo_pointerx ( )
kpointeury = TKI_Principal.winfo_pointery ( )
kcontrole = TKI_Principal.winfo_containing ( kpointeurx , kpointeury )
BOX_Donnees.insert ( "end" , f".winfo_containing ( ) : { kcontrole }" )
if kcontrole == None : return
# --- MaJ de la liste des donnees du controle ---
BOX_Donnees.insert ( "end" , "" )
BOX_Donnees.insert ( "end" , f".winfo_id ( ) : { kcontrole.winfo_id ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_class ( ) : { kcontrole.winfo_class ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_manager ( ) : { kcontrole.winfo_manager ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_parent ( ) : { kcontrole.winfo_parent ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_pathname ( ) : { TKI_Principal.winfo_pathname ( kcontrole.winfo_id ( ) ) }" )
BOX_Donnees.insert ( "end" , f".winfo_name ( ) : { kcontrole.winfo_name ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_geometry ( ) : { kcontrole.winfo_geometry ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_widht ( ) : { kcontrole.winfo_width ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_height ( ) : { kcontrole.winfo_height ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_reqheight ( ) : { kcontrole.winfo_reqwidth ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_reqwidth ( ) : { kcontrole.winfo_reqheight ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_pointerx ( ) : { kcontrole.winfo_x ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_pointery ( ) : { kcontrole.winfo_y ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_rootx ( ) : { kcontrole.winfo_rootx ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_rooty ( ) : { kcontrole.winfo_rooty ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_viewable ( ) : { kcontrole.winfo_viewable ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_exists ( ) : { kcontrole.winfo_exists ( ) }" )
BOX_Donnees.insert ( "end" , f".winfo_ismapped ( ) : { kcontrole.winfo_ismapped ( ) }" )
def FNC_Relance ( ) :
FNC_Donnees ( )
TKI_Principal.after ( 100 , FNC_Relance )
TKI_Principal = tkinter.Tk ( )
BOX_Donnees = tkinter.Listbox ( TKI_Principal , height = 20 , width = 35 )
LAB_Pointeur = tkinter.Label ( TKI_Principal )
FRM_Conteneur = tkinter.LabelFrame ( TKI_Principal , text = "controles" )
tkinter.Button ( FRM_Conteneur , relief = "sunken" ).pack ( fill = "both" )
tkinter.Entry ( FRM_Conteneur ).pack ( )
tkinter.Label ( FRM_Conteneur , text = "label" , relief = "solid" ).pack ( )
tkinter.Spinbox ( FRM_Conteneur ).pack ( )
tkinter.Scale ( FRM_Conteneur , orient = "horizontal" ).pack ( )
tkinter.Button ( FRM_Conteneur , relief = "ridge" , width = 7 ).pack ( )
tkinter.Button ( FRM_Conteneur , relief = "flat" , width = 12 ).pack ( )
tkinter.Button ( FRM_Conteneur , text = "Quitter" , command = TKI_Principal.destroy ).pack ( )
LAB_Pointeur.pack ( side = "top" , fill = "both" )
BOX_Donnees.pack ( side = "left" , fill = "both" )
FRM_Conteneur.pack ( side = "right" , fill = "both" )
FNC_Relance ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de