[tkinter] problème avec tkFileDialog.askopenfile()

problème avec tkFileDialog.askopenfile() [tkinter] - Python - Programmation

Marsh Posté le 15-02-2004 à 18:24:12    

Bonjour,
 
Je suis en train de faire une appli python utilisant tkinter, et j'ai un problème avec la fonction tkFileDialog.askopenfile.
 
Je voudrais qu'un label affiche "aucun " si l'utilisateur ferme la boîte de dialogue/clic sur annuler, ou le nom du fichier choisi le cas échéant.
 
(j'utilise une classe, d'où les self.machin)
 
Tout d'abord j'associe une variable au texte du label :

Code :
  1. self.fichier = StringVar()
  2. Label(frame, text="Fichier :" ).grid(row=0, column=1)
  3. Label(frame, textvariable=self.fichier).grid(row=1, column=1)


 
J'initialise cette variable à "aucun", et le label l'affiche correctement au lancement du programme.
 

Code :
  1. self.fichier.set("Aucun" )


 
Maintenant la fonction qui gère le dialogue :
 

Code :
  1. def get_filename(self):
  2. fichier = tkFileDialog.askopenfilename(filetypes=[('Fichiers csv', '*.csv')])
  3. if fichier == None :
  4.     self.fichier.set("Aucun" )
  5. else:
  6.     self.fichier.set(fichier)


 
Je pense que c'est clair. Si un fichier est choisi son chemin/nom est affiché dans le label, si l'utilisateur à cliqué sur annuler/fermé le dialogue "aucun" est affiché.
 
Si l'utilisateur choisi un fichier ca marche, par contre si il ne choisit rien "aucun" n'est pas affiché et le label reste vide  :(  
 
J'ai essayé de remplacer None par "" ou '', ca ne change rien.
 
Vous avez une idée ?
 
merci

Reply

Marsh Posté le 15-02-2004 à 18:24:12   

Reply

Marsh Posté le 15-02-2004 à 18:29:30    

regarde la valeur de fichier ? t'es sur que c'est None ?
et écrit
 
if not fichier:

Reply

Marsh Posté le 15-02-2004 à 18:31:52    

taz a écrit :

regarde la valeur de fichier ? t'es sur que c'est None ?
et écrit
 
if not fichier:


 
pour None oui, c'est ce que j'ai trouvé dans la doc :
http://www.pythonware.com/library/ [...] -entry.htm
 

Citation :


If the user closed the dialog by pressing Escape, clicking Cancel, or explicitly via the window manager, this function returns None.


Reply

Marsh Posté le 15-02-2004 à 18:34:17    

ca marche avec if not fichier, merci :)
 
Donc en fait par "none" ils voulaient dire rien du tout, vu que c'était en italique je pensant que c'était la chaîne de caractères/constante None :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed