Home > python, Tkinter > tkFileDialog: Nascondere la root window

tkFileDialog: Nascondere la root window

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:python, Tkinter
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: