Nelle proprie applicazioni è frequente l'uso di finestre di dialogo standard come quella usata per aprire/salvare i file; il vantaggio dell'uso di queste finestre consiste nel non dover riscrivere inutilmente codice e in più avere un'interfaccia grafica familiare e quindi più semplice da usare per l'utente.
01: dlg = wxFileDialog(None, "Scegli un file", ".",
02: "nome file di default.txt",
03: "File di testo (*.txt)|*.txt|Tutti i file|*.*",
04: wxOPEN)
05: if dlg.ShowModal() == wxID_OK:
06: wxMessageBox("Il file scelto è " + dlg.GetFilename() +
07: "\nIl percorso completo è " + dlg.GetPath())
08: # Ricordatevi sempre di distruggere la finestra!
09: dlg.Destroy()
Alla linea 4 viene creata la finestra, i parametri sono:
parent: la finestra genitore, può essere None;
message: il messaggio da visualizzare sulla barra del titolo;
defaultDir: la directory di partenza, se non viene specificato la directory di partenza è la directory corrente;
defaultFile: il nome del file di default (se non specificato è "");
wildcard: specifica il tipo di file visualizzati. La stringa è nel formato "stringa visualizzata1|filtro1|stringa visualizzata2|filtro2...", i valori sono quindi separati con il carattere "|". La parte "stringa visualizzata" è ciò che viene mostrato all'utente ma non influenza effettivamente il comportamento di wxPython, la parte "filtro" influenza il tipo di file visualizzati, vengono infatti mostrati solo quelli che corrispondono al filtro. Per il filtro è possibile usare il simbolo "*" ad indicare qualsiasi carattere. Nell'esempio l'utente può scegliere se visualizzare solo i file di testo (con estensione .txt) o tutti i file (con qualsiasi estensione). Se il filtro deve contenere più tipi di file questi possono essere separati dal carattere ";". Ricordatevi di non mettere spazi intorno al carattere "|" perché farebbero parte della parte visualizzata e del filtro
style: gli stili da applicare alla finestra, può essere una combinazione dei seguenti stili (utilizzando l'operatore |):
wxOPEN: la finestra di dialogo serve per aprire un file
wxSAVE: serve per salvare un file
wxHIDE_READONLY: i file in sola lettura vengo nascosti
wxOVERWRITE_PROMPT: prima di sovrascrivere un file ne viene chiesta conferma (vi consiglio di utilizzarlo sempre quando specificate wxSAVE per evitare spiacevoli sorprese)
wxMULTIPLE: permette la selezione di più file contemporanemente
pos: La posizione della finestra.
Alla linea 5 la finestra viene mostrata all'utente e l'esecuzione si blocca fino a quando non viene chiusa, il valore ritornato è wxID_OK se è stato premuto il tasto "OK" o wxID_CANCEL se è stato premuto "Annulla". Alla linea 7 viene visualizzato il nome del file scelto per ottenere il nome si usano le funzioni GetFilename e GetPath che restituiscono rispettivamente il nome del file senza directory (ad es. "pippo.txt") e il nome del file completo (ad es. "c:\documenti\pippo.txt"). Se invece viene specificato lo stile wxMULTIPLE i file selezionati possono essere più di uno, in questo caso è necessario usare le funzioni GetFilenames e GetPaths che restituiscono una lista di file.
Anche l'uso della classe wxDirDialog è molto semplice, i parametri del costruttore sono la finestra genitore, il testo, la directory di partenza, lo stile (inutilizzato, deve essere 0) e la posizione. Dopo la creazione la finestra viene utilizzata come wxFileDialog e per ottenere la directory selezionata si usa il metodo GetPath (linea 3).