Inizia a creare app desktop in Python con la libreria della GUI di Tkinter

Inizia a creare app desktop in Python con la libreria della GUI di Tkinter

Tkinter è un toolkit di interfaccia utente grafica (GUI) che dovresti provare se vuoi esplorare la potenza di Python nella creazione di app desktop.





Qui, diamo uno sguardo alle basi del modulo della GUI di Tkinter.





come aggiungere un contorno al testo in Photoshop?

Configurazione Tkinter

In genere, non è necessario installare tkinter separatamente se hai installato una versione successiva di Python, a partire da Python 3. Tuttavia, la libreria potrebbe non funzionare con le vecchie versioni di Python. Questo è un problema comune per gli utenti Mac e Linux, poiché questi sistemi operativi di solito vengono forniti con versioni precedenti di Python per impostazione predefinita.





In genere, per utilizzare il tkinter modulo, assicurati di scaricare e installare l'ultima versione compatibile di Python sul tuo PC dal sito ufficiale python.org sito web.

Se sei su Mac, in alternativa, puoi scaricare l'ultima versione di ActiveTcl, a tkinter compilatore da Stato attivo .



Come usare Tkinter

Tkinter dipende dal suo built-in TK classe. E racchiude tutti gli eventi all'interno della GUI in a ciclo principale . Così, il ciclo principale l'involucro fa il tuo tkinter codice eseguibile.

Per iniziare tkinter :





from tkinter import Tk
Tk().mainloop()

L'esecuzione del codice sopra fa girare un vuoto tkinter portafoto.

Le funzionalità di personalizzazione di Tkinter, tuttavia, sono nei suoi widget integrati.





Per utilizzare questi widget, puoi importarli da tkinter sostituendo da tkinter import Tk insieme a:

from tkinter import *
t = Tk()
t.mainloop()

Puoi anche regolare la dimensione della finestra con il geometria funzione e quindi specificare un titolo utilizzando il titolo widget di tkinter :

t = Tk()
t.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

Widget etichetta Tkinter

Tkinter ti consente di scrivere testi in chiaro direttamente nella GUI usando il Etichetta aggeggio:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()

Il griglia() metodo, tuttavia, è un'alternativa al pacchetto() metodo. Attacca i tuoi widget alla GUI, rendendoli visibili.

Puoi anche specificare un carattere per il tuo Etichetta testo:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

Lavorare con i widget dei pulsanti in Tkinter

I pulsanti sono alcuni dei widget più utilizzati in tkinter . E puoi aggiungere questi pulsanti cliccabili alla tua GUI utilizzando i vari widget di pulsanti integrati.

Ecco come aggiungere un pulsante principale alla tua GUI usando il Pulsante aggeggio:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

Il bg e fg le parole chiave descrivono rispettivamente il colore di sfondo del pulsante e il colore del testo al suo interno.

Puoi anche regolare la dimensione del pulsante includendo il altezza e larghezza parametri:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()

Ecco l'output per questo:

quale linguaggio di programmazione usa l'unità?

E se vuoi rendere il pulsante più accattivante, puoi includere un sollievo parola chiave e quindi regolare la larghezza del bordo:

t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

E questo assomiglia a questo:

Sostituire INNALZATA insieme a PIATTO per vedere come viene fuori.

Puoi aggiungere tutti i pulsanti che desideri. Ma fai attenzione a evitare la sovrapposizione dei contenuti.

Per evitare sovrapposizioni, puoi specificare la posizione di riga e colonna per ciascun pulsante:

t = Tk()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(t, text=4, bg='black', fg='white').grid(row=4, column=1)
t.mainloop()

Un optional comando la parola chiave, tuttavia, aggiunge eventi al Pulsante aggeggio. In sostanza, ancora una funzione opzionale che gestisce determinati eventi quando si fa clic su un pulsante.

Il codice seguente, ad esempio, moltiplica il valore di ciascun pulsante per 6 quando lo fai clic. E si basa su una funzione predefinita:

def buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

Nel codice sopra, pulsante gestisce l'evento di moltiplicazione. Il Pulsante widget quindi punta a quel gestore di eventi usando un anonimo lambda funzione.

E se sei preoccupato per il pastiglie parola chiave, separa distintamente ogni pulsante nella riga. Sostituendo questo con padx separa i pulsanti lungo la colonna. E puoi usare entrambe le parole chiave contemporaneamente per separare i pulsanti su entrambi gli assi come desideri.

Detto questo, non vuoi reinventare la ruota per ogni pulsante come hai fatto nel codice precedente. Questo rallenta il tempo di esecuzione, inoltre rende il codice difficile da leggere e restringe.

Ma tu puoi usa un ciclo for per evitare questa ripetizione.

Quindi ecco una versione più breve e migliore del codice sopra:

def buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

Esploriamo ulteriormente il potere di per loop per aggiungere pulsanti di menu alla tua GUI:

from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

Menubutton(t, text=buttons[m], bg='blue', fg='white').grid(row=5, column=i)
m += 1
t.mainloop()

Anche l'aggiunta di pulsanti di controllo alla tua GUI è abbastanza semplice:

t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()

Sentiti libero di moltiplicare quel pulsante di spunta usando il per loop, come abbiamo fatto prima.

Come creare un menu a discesa con il widget menu di Tkinter

Il Menù widget ti consente di progettare menu a discesa cliccabili in tkinter .

Come affermato in precedenza, tkinter offre molte opzioni di widget. E ne utilizzerai alcuni durante la progettazione del menu a discesa.

Ecco alcune delle opzioni di widget comuni che incontrerai durante la creazione di un menu a discesa:

  • add_cascade: Visualizza un'etichetta di menu e la attacca dove appartiene.
  • add_separator: Delimita i sottomenu e li raggruppa in sottomenu superiore e inferiore.
  • add_command: Qui è dove dai un nome al tuo sottomenu. In definitiva, accetta un argomento di comando in cui è possibile specificare un gestore di eventi.

Ecco un esempio di menu a discesa che utilizza queste tre opzioni:

from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
t.config(menu=menuBar)
t.mainloop()

Guarda come appare:

Menu delle opzioni di Tkinter

Un Menu Opzioni , non mi piace il Menù menu a discesa, cambia la sua etichetta in un'opzione selezionata.

Sebbene sia possibile specificare un valore di etichetta predefinito per un menu di opzioni, per impostazione predefinita non ha un'etichetta.

Imparentato: Idee di progetto Python adatte ai principianti

Ecco come creare un menu di opzioni in tkinter :

t = Tk()
Omenu = StringVar() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
OptionMenu(t, Omenu, 'MUO', 'Amazon', 'Tutorial').grid()
t.mainloop()

Crea un'app desktop riutilizzabile con Tkinter

Tkinter offre una serie di funzionalità che ti aiutano a creare app desktop con GUI interattive. Anche se potrebbe non avere molte funzionalità di abbellimento flessibili come alcuni altri moduli della GUI Python, è comunque uno strumento utile che vale la pena esplorare. E mentre gli esempi qui mostrano solo alcuni dei concetti di base, tkinter offre funzionalità più avanzate che puoi provare.

il clic sinistro del mouse a volte non funziona

Detto questo, puoi creare una calcolatrice desktop GUI, creare un mini editor di testo o persino creare un'app desktop GUI per gestire i tuoi inventari. Se vuoi spiegare le tue ali e diventare un desktop GUI major, puoi anche dare un'occhiata ad altri moduli GUI di Python.

Condividere Condividere Tweet E-mail GUI? Che cos'è un'interfaccia utente grafica?

Usi una GUI? È probabile che tu li abbia perché li usi ogni singolo giorno.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Pitone
Circa l'autore Idisou Omisola(94 articoli pubblicati)

Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero gioca con la programmazione e quando si annoia passa alla scacchiera, ma ama anche staccare ogni tanto dalla routine. La sua passione per mostrare alle persone la tecnologia moderna lo motiva a scrivere di più.

Altro da Idowu Omisola

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti