logo

PythonTkinter

Python offre molteplici opzioni per lo sviluppo di GUI (interfaccia utente grafica). Tra tutti i metodi della GUI, tkinter è il metodo più comunemente utilizzato. È un'interfaccia Python standard per il toolkit GUI Tk fornito con Python. PythonTkinter è il modo più semplice e veloce per creare applicazioni GUI. Creare una GUI utilizzando Tkinter è un compito facile.

Tabella dei contenuti

Per creare un'app Tkinter Python, segui questi passaggi di base:



  1. Importa il modulo tkinter : Questo viene fatto proprio come importare qualsiasi altro modulo Pitone . Tieni presente che in Python 2.x il modulo si chiama 'Tkinter', mentre in Python 3.x si chiama 'tkinter'.
  2. Creare la finestra principale (contenitore) : La finestra principale funge da contenitore per tutti gli elementi della GUI che aggiungerai in seguito.
  3. Aggiungi widget alla finestra principale : puoi aggiungere un numero qualsiasi di widget come pulsanti, etichette, campi di immissione, ecc. alla finestra principale per progettare l'interfaccia come desideri.
  4. Applicare trigger di eventi ai widget : puoi allegare trigger di eventi ai widget per definire il modo in cui rispondono alle interazioni dell'utente.

Crea la prima applicazione GUI Tkinter

Esistono due metodi principali utilizzati che l'utente deve ricordare durante la creazione dell'applicazione Python con la GUI.

scarica il lettore multimediale vlc di youtube

Tk()

Per creare una finestra principale, tkinter offre un metodo 'Tk(screenName=None, baseName=None, className='Tk', useTk=1)'. Per cambiare il nome della finestra, puoi cambiare className con quello desiderato. Il codice base utilizzato per creare la finestra principale dell'applicazione è:

ciclo principale()

Esiste un metodo noto con il nome mainloop() che viene utilizzato quando l'applicazione è pronta per essere eseguita. mainloop() è un ciclo infinito utilizzato per eseguire l'applicazione, attendere che si verifichi un evento ed elaborare l'evento finché la finestra non viene chiusa.

Esempio

Python3
import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>

Produzione

imm

Widget Tkinter

Esistono numerosi widget che puoi inserire nella tua applicazione tkinter. Alcuni dei widget principali sono spiegati di seguito:

1. Etichetta

Si riferisce alla casella di visualizzazione in cui è possibile inserire qualsiasi testo o immagine che può essere aggiornata in qualsiasi momento secondo il codice. La sintassi generale è:

w=Label(master, option=value) master is the parameter used to represent the parent window.>
Python3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>

Produzione

etichetta

2. Pulsante

Per aggiungere un pulsante nella tua applicazione, viene utilizzato questo widget. La sintassi generale è:

w=Button(master, option=value)>

master è il parametro utilizzato per rappresentare la finestra principale. Esistono numerose opzioni utilizzate per modificare il formato dei pulsanti. Il numero di opzioni può essere passato come parametri separati da virgole.Python3>

>
>

import tkinter as tk r = tk.Tk() r.title('Counting Seconds') button = tk.Button(r, text='Stop', width=25, command=r.destroy) button.pack() r.mainloop()>


Produzione


3. Iscrizione

Viene utilizzato per inserire l'immissione di testo su riga singola da parte dell'utente. Per l'immissione di testo su più righe, viene utilizzato il widget Testo. La sintassi generale è:

w=Entry(master, option=value)>

master è il parametro utilizzato per rappresentare la finestra principale. Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * master = Tk() Label(master, text='First Name').grid(row=0) Label(master, text='Last Name').grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) mainloop()>

Produzione

c booleano

4. Pulsante di controllo

Per selezionare un numero qualsiasi di opzioni visualizzando una serie di opzioni a un utente come pulsanti di attivazione/disattivazione. La sintassi generale è:

w = CheckButton(master, option=value)>

Esistono numerose opzioni utilizzate per modificare il formato di questo widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W) mainloop()>

Produzione



5. Pulsante radio

Viene utilizzato per offrire all'utente un'opzione a scelta multipla. Offre diverse opzioni all'utente e l'utente deve scegliere un'opzione. La sintassi generale è:

w = RadioButton(master, option=value)>

Esistono numerose opzioni utilizzate per modificare il formato di questo widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * root = Tk() v = IntVar() Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W) Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W) mainloop()>

Produzione

6. Casella di riepilogo

Offre un elenco all'utente da cui l'utente può accettare un numero qualsiasi di opzioni. La sintassi generale è:

w = Listbox(master, option=value) master is the parameter used to represent the parent window.>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * top = Tk() Lb = Listbox(top) Lb.insert(1, 'Python') Lb.insert(2, 'Java') Lb.insert(3, 'C++') Lb.insert(4, 'Any other') Lb.pack() top.mainloop()>

Produzione


7. Barra di scorrimento

Si riferisce al controller diapositiva che verrà utilizzato per implementare i widget elencati. La sintassi generale è:

w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * root = Tk() scrollbar = Scrollbar(root) scrollbar.pack(side=RIGHT, fill=Y) mylist = Listbox(root, yscrollcommand=scrollbar.set) for line in range(100): mylist.insert(END, 'This is line number' + str(line)) mylist.pack(side=LEFT, fill=BOTH) scrollbar.config(command=mylist.yview) mainloop()>

Produzione

8. Menù

Viene utilizzato per creare tutti i tipi di menu utilizzati dall'applicazione. La sintassi generale è:

w = Menu(master, option=value) master is the parameter used to represent the parent window.>

Esistono numerose opzioni utilizzate per modificare il formato di questo widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * root = Tk() menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu) menu.add_cascade(label='File', menu=filemenu) filemenu.add_command(label='New') filemenu.add_command(label='Open...') filemenu.add_separator() filemenu.add_command(label='Exit', command=root.quit) helpmenu = Menu(menu) menu.add_cascade(label='Help', menu=helpmenu) helpmenu.add_command(label='About') mainloop()>

Produzione

9. Casella combinata

Il widget Combobox viene creato utilizzando la classe ttk.Combobox dal modulo tkinter.ttk. I valori per la casella combinata vengono specificati utilizzando il parametro value. Il valore predefinito viene impostato utilizzando il metodo set. Una funzione del gestore eventi on_select è associata al Combobox utilizzando il metodo bind, che aggiorna un'etichetta con l'elemento selezionato ogni volta che un elemento viene selezionato.

Python3
import tkinter as tk from tkinter import ttk def on_select(event): selected_item = combo_box.get() label.config(text='Selected Item: ' + selected_item) root = tk.Tk() root.title('Combobox Example') # Create a label label = tk.Label(root, text='Selected Item: ') label.pack(pady=10) # Create a Combobox widget combo_box = ttk.Combobox(root, values=['Option 1', 'Option 2', 'Option 3']) combo_box.pack(pady=5) # Set default value combo_box.set('Option 1') # Bind event to selection combo_box.bind('<>', on_select) root.mainloop()>

Produzione

immagine2

10. Scala

Viene utilizzato per fornire uno slider grafico che consente di selezionare qualsiasi valore da quella scala. La sintassi generale è:

w = Scale(master, option=value)master is the parameter used to represent the parent window.>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

quadro di raccolta Java
Python3
from tkinter import * master = Tk() w = Scale(master, from_=0, to=42) w.pack() w = Scale(master, from_=0, to=200, orient=HORIZONTAL) w.pack() mainloop()>

Produzione

undici. Livello superiore

Questo widget è controllato direttamente dal gestore delle finestre. Non è necessaria alcuna finestra genitore su cui lavorare. La sintassi generale è:

w = TopLevel(master, option=value)>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>

Produzione

12. Messaggio

Si riferisce al testo su più righe e non modificabile. Funziona allo stesso modo di Label. La sintassi generale è:

w = Message(master, option=value) master is the parameter used to represent the parent window.>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>

Produzione

13. Pulsante Menu

Fa parte del menu dall'alto verso il basso che rimane sempre visualizzato nella finestra. Ogni pulsante del menu ha la propria funzionalità. La sintassi generale è:

w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * top = Tk() mb = Menubutton ( top, text = 'GfG') mb.grid() mb.menu = Menu ( mb, tearoff = 0 ) mb['menu'] = mb.menu cVar = IntVar() aVar = IntVar() mb.menu.add_checkbutton ( label ='Contact', variable = cVar ) mb.menu.add_checkbutton ( label = 'About', variable = aVar ) mb.pack() top.mainloop()>

Produzione

14. Barra di avanzamento

Applicazione Tkinter con un widget Progressbar e un pulsante per avviare l'avanzamento. Quando si fa clic sul pulsante, la barra di avanzamento si riempie fino al 100% in un breve periodo, simulando un'attività che richiede tempo per essere completata.

Python3
import tkinter as tk from tkinter import ttk import time def start_progress(): progress.start() # Simulate a task that takes time to complete for i in range(101): # Simulate some work time.sleep(0.05) progress['value'] = i # Update the GUI root.update_idletasks() progress.stop() root = tk.Tk() root.title('Progressbar Example') # Create a progressbar widget progress = ttk.Progressbar(root, orient='horizontal', length=300, mode='determinate') progress.pack(pady=20) # Button to start progress start_button = tk.Button(root, text='Start Progress', command=start_progress) start_button.pack(pady=10) root.mainloop()>

Produzione

progresso

quindici. SpinBox

È una voce del widget 'Inserimento'. Qui, il valore può essere inserito selezionando un valore fisso di numeri. La sintassi generale è:

w = SpinBox(master, option=value)>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>

Produzione:

16. Testo

Per modificare un testo su più righe e formattarlo nel modo in cui deve essere visualizzato. La sintassi generale è:

w =Text(master, option=value)>

Esistono numerose opzioni che vengono utilizzate per modificare il formato del testo. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>

Produzione

17. Tela

Viene utilizzato per disegnare immagini e altri layout complessi come grafica, testo e widget. La sintassi generale è:

w = Canvas(master, option=value) master is the parameter used to represent the parent window.>

Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * master = Tk() w = Canvas(master, width=40, height=60) w.pack() canvas_height=20 canvas_width=200 y = int(canvas_height / 2) w.create_line(0, y, canvas_width, y ) mainloop()>

Uscita

18. Finestra panoramica

È un widget contenitore che viene utilizzato per gestire il numero di riquadri disposti al suo interno. La sintassi generale è:

w = PannedWindow(master, option=value)>

Master è il parametro utilizzato per rappresentare la finestra principale. Esistono numerose opzioni utilizzate per modificare il formato del widget. Il numero di opzioni può essere passato come parametri separati da virgole. Alcuni di essi sono elencati di seguito.

Python3
from tkinter import * m1 = PanedWindow() m1.pack(fill=BOTH, expand=1) left = Entry(m1, bd=5) m1.add(left) m2 = PanedWindow(m1, orient=VERTICAL) m1.add(m2) top = Scale(m2, orient=HORIZONTAL) m2.add(top) mainloop()>

Produzione

Opzione colore in Tkinter

Questo esempio dimostra l'utilizzo di varie opzioni di colore nei widget Tkinter, inclusi i colori di sfondo e di primo piano attivi, i colori di sfondo e di primo piano, i colori dello stato disabilitato e i colori di selezione. Ogni widget nell'esempio mostra un'opzione di colore diversa, fornendo una rappresentazione visiva di come queste opzioni influiscono sull'aspetto dei widget.

Python3
import tkinter as tk root = tk.Tk() root.title('Color Options in Tkinter') # Create a button with active background and foreground colors button = tk.Button(root, text='Click Me', activebackground='blue', activeforeground='white') button.pack() # Create a label with background and foreground colors label = tk.Label(root, text='Hello, Tkinter!', bg='lightgray', fg='black') label.pack() # Create an Entry widget with selection colors entry = tk.Entry(root, selectbackground='lightblue', selectforeground='black') entry.pack() root.mainloop()>

Produzione

2024-04-2516-50-47online-video-cuttercom-ezgifcom-convertitore-video-in-gif

Scopri di più per migliorare il carattere: Carattere Tkinter

Gestione della geometria

Tkinter offre anche l'accesso alla configurazione geometrica dei widget che può organizzare i widget nelle finestre principali. Esistono principalmente tre classi di classi di gestione della geometria.

metodo pack()

Organizza i widget in blocchi prima di inserirli nel widget principale.

Python3
import tkinter as tk root = tk.Tk() root.title('Pack Example') # Create three buttons button1 = tk.Button(root, text='Button 1') button2 = tk.Button(root, text='Button 2') button3 = tk.Button(root, text='Button 3') # Pack the buttons vertically button1.pack() button2.pack() button3.pack() root.mainloop()>

Produzione


np.argmax

pacchetto

metodo grid()

Organizza i widget in griglia (struttura simile a una tabella) prima di posizionarli nel widget principale.

Python3
import tkinter as tk root = tk.Tk() root.title('Grid Example') # Create three labels label1 = tk.Label(root, text='Label 1') label2 = tk.Label(root, text='Label 2') label3 = tk.Label(root, text='Label 3') # Grid the labels in a 2x2 grid label1.grid(row=0, column=0) label2.grid(row=0, column=1) label3.grid(row=1, column=0, columnspan=2) root.mainloop()>

Produzione

griglia

metodo place()

Organizza i widget posizionandoli in posizioni specifiche dirette dal programmatore.

Python3
import tkinter as tk root = tk.Tk() root.title('Place Example') # Create a label label = tk.Label(root, text='Label') # Place the label at specific coordinates label.place(x=50, y=50) root.mainloop()>

Produzione

posto