Home > Tkinter > tkFileDialog: Nascondere la root window

tkFileDialog: Nascondere la root window

16 Ottobre 2013

Non sempre si utilizza il tkFileDialog, messo a disposizione da Tkinter,
all’interno di una root window.
Capita a volta di scrivere semplicissime righe di codice senza GUI,
ma di avere bisogno di un FileBrowser per la selezione (o salvataggio)
di un file.

Nessun problema,
ad es. il codice seguente fa quello che serve:

import Tkinter as tk
import tkFileDialog as tkfd


def get_file(root):
    ch_file = tkfd.askopenfilename(master=root,
                filetypes=[('Text file','*.txt'),
                           ('All files','*.*')])

    root.destroy()
    return ch_file

if __name__ == '__main__':
    root = tk.Tk()
    f = get_file(root)
    root.mainloop()

C’è una cosa però che non voglio vedere:
la finestra di root generica, che appare dietro
all’tkFileDialog.

Per ovviare a questo problema, basta utilizzare il
metodo withdraw di root, inserendolo subito prima
della chiamata al metodo askopenfilename.

import Tkinter as tk
import tkFileDialog as tkfd


def get_file(root):
    root.withdraw()
    ch_file = tkfd.askopenfilename(master=root,
                filetypes=[('Text file','*.txt'),
                           ('All files','*.*')])

    root.destroy()
    return ch_file

if __name__ == '__main__':
    root = tk.Tk()
    f = get_file(root)
    root.mainloop()
Categorie:Tkinter Tag:
I commenti sono chiusi.