tkinter Tutorial
Iniziare con tkinter
Ricerca…
Osservazioni
Tkinter (" Tk Inter face") è il pacchetto standard multipiattaforma di python per la creazione di interfacce utente grafiche (GUI). Fornisce l'accesso a un interprete Tcl sottostante con il toolkit Tk, che a sua volta è una libreria di interfaccia grafica multilingue multipiattaforma.
Tkinter non è l'unica libreria GUI per Python, ma è quella che viene fornita come standard. Ulteriori librerie GUI che possono essere usate con python includono wxPython , PyQt e kivy .
La più grande forza di Tkinter è la sua ubiquità e semplicità. Funziona fuori dalla scatola sulla maggior parte delle piattaforme (linux, OSX, Windows) e viene fornito completo di una vasta gamma di widget necessari per le attività più comuni (pulsanti, etichette, disegno su tela, testo multilinea, ecc.).
Come strumento di apprendimento, tkinter ha alcune caratteristiche che sono uniche tra i toolkit della GUI, come i font nominati, i tag di binding e la tracciabilità variabile.
Differenze tra Python 2 e 3
Tkinter è in gran parte invariato tra python 2 e python 3, con la differenza che il pacchetto e i moduli tkinter sono stati rinominati.
Importazione in python 2.x
In python 2.x, il pacchetto tkinter si chiama Tkinter
e i pacchetti correlati hanno i loro nomi. Ad esempio, quanto segue mostra un insieme tipico di istruzioni di importazione per python 2.x:
import Tkinter as tk
import tkFileDialog as filedialog
import ttk
Importazione in python 3.x
Sebbene le funzionalità non cambino molto tra Python 2 e 3, i nomi di tutti i moduli di tkinter sono cambiati. Di seguito è riportato un set tipico di istruzioni di importazione per python 3.x:
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
Ulteriori letture
Versioni
Tcl
Versione | Data di rilascio |
---|---|
8.6 | 2016/07/27 |
8.5 | 2016/02/12 |
8.4 | 2013/06/01 |
8.3 | 2002-10-18 |
8.2 | 1999/12/16 |
8.1 | 1999/05/26 |
8.0 | 1999/03/09 |
Pitone
Versione | Data di rilascio |
---|---|
3.6 | 2016/12/23 |
3.5 | 2015/09/13 |
3.4 | 2014/03/17 |
3.3 | 2012/09/29 |
3.2 | 2011-02-20 |
3.1 | 2009-06-26 |
3.0 | 2008-12-03 |
2.7 | 2010-07-03 |
2.6 | 2008-10-02 |
2.5 | 2006-09-19 |
2.4 | 2004-11-30 |
2.3 | 2003/07/29 |
2.2 | 2001/12/21 |
2.1 | 2001/04/15 |
2.0 | 2000/10/16 |
Installazione o configurazione
Tkinter viene preinstallato con i binari di installazione di Python per Mac OS X e la piattaforma Windows. Quindi, se installi Python dai binari ufficiali per Mac OS X o la piattaforma Windows, sei a posto con Tkinter.
Per le versioni Debian di Linux devi installarlo manualmente usando i seguenti comandi.
Per Python 3
sudo apt-get install python3-tk
Per Python 2.7
sudo apt-get installa python-tk
Le distribuzioni Linux con yum installer possono installare il modulo tkinter usando il comando:
yum install tkinter
Verifica l'installazione
Per verificare se hai installato correttamente Tkinter, apri la tua console Python e digita il seguente comando:
import tkinter as tk # for Python 3 version
o
import Tkinter as tk # for Python 2.x version
Tkinter è stato installato correttamente, se il comando precedente viene eseguito senza errori.
Per verificare la versione di Tkinter, digitare i seguenti comandi nel REPL di Python:
Per python 3.X
import tkinter as tk
tk._test()
Per python 2.X
import Tkinter as tk
tk._test()
Nota: l'importazione di Tkinter as tk
non è richiesta ma è una buona pratica in quanto aiuta a mantenere le cose coerenti tra la versione.
Ciao mondo! (minimo)
Mettiamo alla prova la nostra conoscenza di base di tkinter creando il classico "Hello, World!" programma.
Per prima cosa, dobbiamo importare tkinter, questo varierà in base alla versione (vedere la sezione commenti su "Differenze tra Python 2 e 3")
In Python 3 il modulo tkinter
ha una t minuscola:
import tkinter as tk
In Python 2 il modulo Tkinter
ha una T maiuscola:
import Tkinter as tk
L'utilizzo di as tk
non è strettamente necessario, ma lo useremo, quindi il resto di questo esempio funzionerà allo stesso modo per entrambe le versioni.
ora che abbiamo il modulo tkinter importato possiamo creare la root della nostra applicazione usando la classe Tk
:
root = tk.Tk()
Questo fungerà da finestra per la nostra applicazione. (nota che le finestre aggiuntive dovrebbero essere istanze di Toplevel
)
Ora che abbiamo una finestra, aggiungiamo del testo con Label
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
Una volta che l'applicazione è pronta, possiamo avviarla (inserire il ciclo degli eventi principale ) con il metodo mainloop
root.mainloop()
Questo si aprirà ed eseguirà l'applicazione fino a quando non viene interrotta dalla chiusura della finestra o chiamando le funzioni di uscita dai callback (discussi in seguito) come root.destroy()
.
Mettere tutto insieme:
import tkinter as tk # Python 3.x Version
#import Tkinter as tk # Python 2.x Version
root = tk.Tk()
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
root.mainloop()
E qualcosa del genere dovrebbe apparire:
Ciao mondo! (modulare, orientato agli oggetti)
import tkinter as tk
class HelloWorld(tk.Frame):
def __init__(self, parent):
super(HelloWorld, self).__init__(parent)
self.label = tk.Label(self, text="Hello, World!")
self.label.pack(padx=20, pady=20)
if __name__ == "__main__":
root = tk.Tk()
main = HelloWorld(root)
main.pack(fill="both", expand=True)
root.mainloop()
Nota: è possibile ereditare da qualsiasi widget tkinter, inclusa la finestra radice. Ereditare da tkinter.Frame
è almeno il più flessibile in quanto supporta più interfacce di documenti (MDI), singole interfacce di documenti (SDI), applicazioni a singola pagina e applicazioni a più pagine.