Em computação caixas de diálogo reutilizáveis que são comuns a todas as aplicações, incluindo caixas de diálogo para abrir arquivos, salvar arquivos e impressão. Uma vez que estas caixas de diálogo são implementadas pelo sistema operacional, ou classes no caso de linguagens multi plataforma, podem ser compartilhadas entre todos os aplicativos que são executados no sistema operacional, o que ajuda o usuário a experiência de consistência; quando os usuários estão familiarizados com o uso de uma caixa de diálogo de funcionamento fornecido pelo sistema em um aplicativo, eles não precisam aprender a usar essa caixa de diálogo em outras aplicações. Como essas caixas de diálogo estão disponíveis para todas as aplicações e porque ajudam a proporcionar uma experiência de usuário consistente.
TkFileDialog
Se você deseja abrir ou salvar um arquivo ou para escolher um diretório usando um diálogo de arquivos. O tkFileDialog é o módulo para você. Na maioria dos casos as sete funções de conveniência fornecidos pelo módulo vai atender suas necessidades.
Exemplo:
Neste exemplo usamos a classe CFileDialog para usar os diálogos comuns e retornar o caminho do arquivo selecionado.
Python
#!/usr/bin/env python # -*- coding: latin-1 -*- # Desenvolvimento Aberto # Dialog.py # importa modulos from Tkinter import * from ScrolledText import ScrolledText import tkFileDialog # Cria formulario formulario = Tk() formulario.title = "Desenvolvimento Aberto" # Eventos dos botões def clique1(): arquivo = tkFileDialog.askopenfile() if arquivo: texto.insert(END, arquivo.read()) def clique2(): arquivo = tkFileDialog.asksaveasfile() if arquivo: arquivo.write(texto.get(1.0,END)) # Cria componentes rotulo = Label(formulario, text="Digite um texto na caixa abaixo:") texto = ScrolledText(formulario, height =10, width = 40) botao1 = Button(formulario, text="Abrir", width=7, command=clique1) botao2 = Button(formulario, text="Salvar", width=7, command=clique2) # Posiciona componentes rotulo.pack(padx=10, pady=10) texto.pack(padx=10, fill=BOTH) botao1.pack(padx=10, side=LEFT) botao2.pack(padx=2,pady=10, side=LEFT) # Loop do tcl mainloop()