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:

finestra di tkinter

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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow