Iniziare con le interfacce utente grafiche in Python

Sommario

In questo tutorial metteremo Esempi per l'implementazione di applicazioni GUI in Python, ci sono molti moduli per lavorare con un'interfaccia grafica, qui abbiamo scelto Tkinter, poiché viene preinstallato con Python e ci aiuterà a vedere come lavoriamo in questo modo, anche se alla fine vedremo un piccolo esempio di PyQt.

Possiamo verificare se Tkinter il modulo è correttamente installato utilizzando:

 python -m tkinter
NotaIn Python 2 sarebbe la prima t maiuscola: Tkinter, poiché in Python 3 è stata rinominata.

Se è installato correttamente, vedremo che viene visualizzata una finestra come quella qui sotto:

Se non vedremo un errore, indicherà che non riesce a trovare questo modulo:

Per installare il modulo in Python 3 all'interno delle distribuzioni Debian:

 sudo apt-get install python3-tk
Per altre versioni vedere il seguente link. Il tutorial è focalizzato sul dare una prima impressione sul lavoro con la GUI in Python, se sei nuovo su questo argomento, allora ti aiuterà, se stai cercando argomenti avanzati questo non è il tutorial giusto.

NotaQui lavoreremo con Python 3, importiamo la libreria come segue:

 importare tkinter
Tuttavia in Python 2 devi importarlo come segue, abbiamo già parlato di rinominarlo:
 importare Tkinter

Inizieremo il tutorial esempio per esempio, inizieremo con il più semplice e lo complicheremo alla fine.

Esempio 1
Creeremo una semplice finestra per questo scriviamo il seguente codice:

 import tkinter window = tkinter.Tk () window = tkinter.mainloop ()
Con la prima riga importiamo il modulo necessario, la successiva crea la finestra principale e se togliamo l'ultima istruzione la finestra non si vedrà quando eseguiremo il codice. L'output dell'esempio:

Questo esempio è stato molto lungo, 3 righe… Passiamo al prossimo.

Esempio 2
In questo esempio, che non è molto più lungo del precedente, creeremo la finestra come abbiamo fatto nell'esempio 1, ma la configureremo un po', cambieremo colore, dimensione e titolo.

 import tkinter as tk window = tk.Tk () window.config (bg = "blu") window.geometry ("400x300") window.title ("Esempio2") window.mainloop ()
La prima riga importa ancora il modulo tkinter, ma gli diamo un alias in modo da poter usare una parola più corta nel codice. Creeremo la finestra come nell'esempio precedente. E le prossime 3 righe configureranno il colore, la dimensione e il titolo in ordine. L'ultima riga la conosciamo già. L'output dell'esempio è il seguente:

Finora è stato tutto molto semplice, continuiamo con altri esempi.

Esempio 3
Ora creeremo un pulsante all'interno della finestra principale, il che non ci complicherà molto, vediamo il codice:

 import tkinter as tk window = tk.Tk () window.geometry ("200x150") button = tk.Button (finestra, testo = "Test") button.grid (riga = 1, colonna = 1) window.mainloop ()
Le uniche righe che necessitano di una spiegazione sono:
 button = tk.Button (finestra, testo = "Test") button.grid (riga = 1, colonna = 1)
Il primo crea un pulsante con il nome Testing (pulsante), e lo assegniamo a finestra, che è la variabile della nostra finestra principale. Il secondo posiziona il pulsante nella riga e nella colonna 1. L'esecuzione ci mostrerà quanto segue:

Il pulsante viene semplicemente visualizzato, non funziona, poiché non sta servendo eventi, lo faremo nell'esempio seguente.

Esempio 4
Ora assisteremo ad un evento per aprire una seconda finestra, che non sarà quella principale, vediamo il codice:

 import tkinter as tk def open(): window2 = tk.Toplevel (finestra) window = tk.Tk() window.geometry ("200x150") button = tk.Button (finestra, testo = "Apri", comando = apri) button.grid (riga = 1, colonna = 1) window.mainloop () 
Vedremo le nuove righe, la funzione apri avrà le seguenti istruzioni, che creeranno una finestra “figlia” di quella principale.
 window2 = tk.Toplevel (finestra)
E il pulsante ha un piccolo cambiamento, nota comando, è eseguire una funzione, in questo caso chiamare la funzione aprire:
 button = tk.Button (finestra, testo = "Apri", comando = apri)
Andiamo ad un esempio con una classe.

Esempio 5
Questo è l'ultimo esempio di tkinter e sarà il più lungo, creeremo una classe per fare qualcosa di diverso. Quello che faremo è una piccola finestra, che non può essere ridimensionata, avrà un'etichetta di testo e un pulsante, ogni volta che si preme il pulsante il numero aumenterà. Passiamo al codice:

 import tkinter as tk class Application (): counter = 1 def __init __ (self): self.window = tk.Tk () self.window.geometry ("300x60") self.window.title ("Esempio 5") self .window.resizable (width = False, height = False) self.createButton () self.createLabel () self.window.mainloop () def createButton (self): self.button = tk.Button (self.window, text = " Aumenta ", command = self.increase) self.button.pack () def createLabel (self): self.tag = tk.Label (self.window, text =" 0 ", fg =" blue ") self.tag .pack (pady = 10) def aumentare (self): self.tag ["testo"] = self.counter self.counter + = 1 app = Application () 
In funzione __dentro__ creeremo la finestra e la configureremo, oltre a chiamare le funzioni createButton createLabel per noi credere a questi elementi. Se abbiamo visto gli esempi precedenti, questo non dovrebbe generare complicazioni o dubbi. All'avvio del programma abbiamo la finestra con il numero a 0:

Se clicchiamo sul pulsante il numero aumenta, ad esempio dopo aver cliccato 25 volte abbiamo quanto segue:

In questo tutorial abbiamo visto le basi del modulo tkinter, potrai creare molte più cose, se sei interessato ad approfondire qui hai il link alla pagina ufficiale di Python dove si parla di tkinter.

Hai altre librerie in Python con le quali puoi programmare interfacce grafiche come detto all'inizio, alcune sono:

  • PyGTK
  • wxPython
  • PyQT

Per poter confrontare un po' tkinter con un modulo diverso, daremo un esempio di PyQt.

Esempio con PyQT
Per lanciare questo esempio dovrai installare la libreria, puoi visitare il link che abbiamo messo sopra. Creeremo una finestra con una dimensione di 275x200 e con il titolo Esempio PyQt4. Apparirà anche in posizione 300x300

 import sys from PyQt4 import QtGui application = QtGui.QApplication (sys.argv) window = QtGui.QWidget () window.resize (275, 200) window.move (300, 300) window.setWindowTitle ('Esempio PyQt4') finestra. show() sys.exit (application.exec_()) 
Se eseguiamo il codice otteniamo il seguente output:

Niente di complicato, come è stato osservato durante il tutorial, potremmo continuare a mettere esempi, poiché c'è molto da toccare, ma con un'introduzione ti prepara già a esercitarti a creare i tuoi esempi, aggiungendo altri elementi, come elenchi, caselle di testo dove scrivere, ecc.

Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave