2015-08-26 14 views
10

Sto utilizzando il seguente frammento di codice per aprire una finestra di dialogo selettore file. Si apre bene il dialogo, ma dopo aver scelto un file la finestra di dialogo rimane aperta per tutta la durata dell'esecuzione del resto del mio codice, che è di 3-4 minuti. Pensavo che root.destroy() chiudesse la finestra di dialogo dei file aperti come se chiudesse altre finestre di Tkinter, ma non sembra essere il caso.Tkinter askopenfilename() non si chiude

from tkinter import * 
from tkinter.filedialog import askopenfilename 

root = Tk() 
root.withdraw() 
file_path = askopenfilename() 
root.destroy() 

Come dovrei ottenere la chiusura della finestra di dialogo del file aperto dopo la scelta del file? Sto usando la versione 3.4.3 su OSX 10.10

+0

funziona bene su Windows 7, Python 2.7 – VRage

+0

Dimenticate radice finestra e vuoi tornare? 'root.withdraw()' si perde la finestra di root non si può tornare indietro! – dsgdfg

+0

@SDilmac 'root.deiconify()' per riportarlo indietro – maccartm

risposta

9

Per il bene di chiudere questa domanda, ecco la risposta:

chiamata root.update() prima askopenfilename()

+0

Volevo solo aggiungere che per me, su OSX e python2, chiamando 'root.update()' _after_ 'askopenfilename()' funziona. – Plasma

Problemi correlati