Python - Interfacce utente, parte 2

Sommario
Come abbiamo potuto vedere nella prima parte del tutorial, creare una finestra è abbastanza semplice, in questa seconda parte andremo un po' oltre andando più in profondità in ciò che abbiamo lasciato come base ed espandendo il codice per creare qualcosa con un maggior grado di complessità.
Aggiungi un pulsante
Una volta usciti dalla finestra, al suo interno devono esserci più elementi e uno dei più basilari ma molto importanti è il pulsante, per aggiungerlo andremo ad aggiungere btn = wx.Button (vinci) nel nostro codice, vediamo:
 import wx app = wx.App () win = wx.Frame (Nessuno) btn = wx.Button (win) win.Show () app.MainLoop () 

Come possiamo vedere, è praticamente lo stesso codice di cui sopra, tuttavia includiamo l'istruzione che aggiunge il pulsante, nell'immagine possiamo vedere il risultato:

Il risultato non è molto estetico poiché il pulsante occupa l'intera finestra, ma non dobbiamo scoraggiarci, nella prossima sezione vedremo come controllarlo per generare un risultato più gradevole alla vista.
Etichette e posizioni
Nella sezione precedente ci siamo resi conto che sebbene sia molto facile aggiungere più elementi, dobbiamo essere in grado di distribuirli in modo che a livello grafico sia coerente con ciò che vogliamo ottenere, per questo possiamo stabilire etichette, dimensioni e posizioni per gli elementi all'interno della finestra.
Vedremo il codice seguente con il risultato corrispondente in modo da poter analizzare e comprendere meglio il processo.
 import wx app = wx.App () win = wx.Frame (Nessuno,) loadButton = wx.Button (win, label = 'Apri') saveButton = wx.Button (win, label = 'Salva') win.Show ( ) app.MainLoop () 

Come possiamo vedere, mettiamo un valore nel titolo della finestra, come argomento per il costruttore durante l'istanza, quindi creiamo due pulsanti e ognuno aggiungiamo un'etichetta o etichetta, possiamo vedere il risultato, anche se potrebbe non essere ciò che ci aspettiamo:

Infatti possiamo vedere che qualcosa non sembra giusto e che uno dei pulsanti non è visibile, questo perché non ne specifichiamo la posizione, quindi è nascosto sotto l'altro pulsante.
Correggeremo questo con il seguente codice:
 import wx app = wx.App () win = wx.Frame (None ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), size = (80, 25)) saveButton = wx.Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), size = (210, 25)) content = wx.TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) app .MainLoop() 

Con questo codice, oltre a correggere il dettaglio con le posizioni dei pulsanti, sfruttiamo e aggiungiamo alcuni controlli di testo, vediamo nell'immagine seguente come sarebbe il tutto.

Le cose sono già in condizioni migliori, tuttavia ora ci chiediamo, cosa faremo con questa finestra, perché nella prossima sezione andremo a definire alcune funzionalità.
Gestione degli eventi
Usando questo tipo di approccio per creare i nostri programmi, anche la visione di ciò che facciamo cambia un po', in questo caso e le azioni che il programma esegue chiameremo eventi, questi eventi vengono attivati ​​da azioni dell'utente come fare clic su un pulsante, quindi abbiamo modificato un po' il codice per includere questi eventi:
loadButton.Bind (wx.EVT_BUTTON, carica)

Quella linea ci fa un'unione tra la funzione di caricamento e l'elemento, in questo caso un pulsante, quindi sappiamo già che dobbiamo prima definire una funzione e poi assegnarla in un evento legato a un elemento.
Vediamo il codice finale:
 import wx def load (event): file = open (filename.GetValue ()) content.SetValue (file.read ()) file.close () def save (event): file = open (filename.GetValue (), ' w ') file.write (contents.GetValue ()) file.close () app = wx.App () win = wx.Frame (None ,, size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Apri') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Salva') saveButton.Bind (wx.EVT_BUTTON, save) nomefile = wx.TextCtrl (bkg) content = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (nome file, proporzione = 1, flag = wx.EXPAND) hbox.Add (loadButton, proporzione = 0, flag = wx.LEFT, border = 5) hbox.Add (saveButton, proporzione = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proporzione = 0, flag = wx.EXPAND | wx.ALL, border = 5) vbox.Add (contenuto, proporzione = 1, flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Quello che fa questo programma è modificare i file di testo in un modo abbastanza semplice, tuttavia ci ha fatto usare molte funzioni e applicazioni.
Con questo finiamo il tutorial, sapendo come usare a kit di strumenti interfaccia utente, ti invitiamo a esaminare i diversi toolkit esistenti, compresi quelli esclusivi di un particolare sistema operativo, ricordando che ogni strumento ci sarà utile occasionalmente.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave