⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ boites de dialogue
tkinter.filedialog.askdirectory ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ boites de dialogue
tkinter.filedialog.askdirectory ( )
DESCRIPTION.
Ouvre une boite de dialogue, proposant à l'utilisateur de sélectionner un répertoire, ou dossier, puis retourne son chemin complet.
SYNTAXE.
Chemin = tkinter.filedialog.askdirectory ( attribut1 = valeur , ... , attributn = valeur )
Chemin = ⇨ variable qui recevra le chemin du répertoire [ optionnel ]
tkinter.filedialog.askdirectory ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
attribut = valeur ⇨ attribut à modifier avec sa nouvelle valeur [ optionnel ]
LISTE DES ATTRIBUTS.
initialdir = chemin
chemin doit être un str ( ) correspondant au chemin d'un répertoire valide qui sera sélectionné lors de l'ouverture de la boîte de dialogue. Si chemin n'existe pas, la boite de dialogue s'ouvrira sur le répertoire dont le nom est le plus proche possible de chemin ou du répertoire par défaut au moment de l'appel. Par défaut chemin est le répertoire de travail courant.
mustexist = booleen
Si mustexist = True seul un répertoire existant pourra être sélectionné, le bouton OK ne sera désactivé si un nom de répertoire inexistant est saisie dans la zone de saisie. Si mustexist = False, valeur par défaut, la méthode accepte et retourne toutes chaines de caractères saisie dans la zone de saisie, mais ne créée pas de nouveau répertoire si le nom retourné n'existe pas, le bouton OK n'est jamais désactivé.
parent = contenant
Identification du contenant au dessus duquel sera affiché la boîte de dialogue, par défaut c'est la fenêtre principale créée avec la classe tkinter.Tk ( ).
title = chaine
chaine doit être un str ( ) quelconque mais valide. chaine apparaitra dans le bandeau situé en haut de la boite de dialogue. Par défaut chaine vaut "Choisir répertoire". Attention, la valeur de l'attribut title d'une fenêtre n'est pas son nom, ni son identifiant. On ne peut pas appeler la boite de dialogue en utilisant la valeur de l'attribut title pour l'identifier.
REMARQUES.
La méthode tkinter.filedialog.askdirectory ( ) retourne un str ( ) donnant le chemin absolu du répertoire sélectionné.Si l'utilisateur clique sur le bouton "annuler" de la boîte de sélection retourne un tuple ( ) vide : ( ).
La valeur retournée par la méthode tkinter.filedialog.askdirectory ( ) pourra ensuite être utilisée avec les classes et méthodes disponibles dans le module os. Par exemple os.chdir ( tkinter.filedialog.askdirectory ( ) ) modifiera le répertoire de travail courant du système de l'utilisateur.
Le format de la valeur retournée, en particulier l'indication du lecteur et la séparation entre les noms des sous répertoires, varie fortement en fonction de l'environnement et du système d'exploitation sur lequel tourne l'application. Dans certains cas extrêmes mais rares, la méthode peut provoquer des comportements inattendus.
La méthode tkinter.filedialog.askdirectory ( ) n'est pas native du module tkinter, il faut donc commencer par importer le module tkinter.filedialog pour pouvoir utiliser cette méthode. Voir import pour plus de détails sur l'incorporation de modules, classes et méthodes non built-in dans un script.
Bien que cela soit fortement déconseiller, il n'est pas nécessaire d'importer le module le module tkinter avant le module tkinter.filedialog. En effet le module tkinter sera automatiquement importé avec le module tkinter.filedialog. De même il n'est pas utile de créer une instance de la classe Directory ( ) pour appeler la méthode tkinter.filedialog.askdirectory ( ).
import tkinter.filedialog
print ( tkinter.filedialog.askdirectory ( ) )
EXEMPLE.
import tkinter
import tkinter.filedialog
def FNC_Repertoire ( ) :
krepertoire = tkinter.filedialog.askdirectory ( initialdir = TKV_Chemin.get ( ) , mustexist = True )
if krepertoire : TKV_Chemin.set ( krepertoire )
TKI_Principal = tkinter.Tk ( )
TKV_Chemin = tkinter.StringVar ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
BUT_Selectionner = tkinter.Button ( TKI_Principal , text = "Sélectionner ... " , command = FNC_Repertoire )
tkinter.Label ( TKI_Principal , textvariable = TKV_Chemin , width = 40 ).grid ( row = 0 , column = 0 , columnspan = 2 )
BUT_Selectionner.grid ( row = 1 , column = 0 )
BUT_Quitter.grid ( row = 1 , column = 1 )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de