logo

Python Tkinter

Python oferă mai multe opțiuni pentru dezvoltarea GUI (Graphical User Interface). Dintre toate metodele GUI, tkinter este metoda cea mai frecvent utilizată. Este o interfață standard Python pentru setul de instrumente Tk GUI livrat cu Python. Python Tkinter este cea mai rapidă și mai ușoară modalitate de a crea aplicații GUI. Crearea unei interfețe grafice folosind Tkinter este o sarcină ușoară.

Cuprins

Pentru a crea o aplicație Tkinter Python, urmați acești pași de bază:



  1. Importați modulul tkinter : Acest lucru se face la fel ca importul oricărui alt modul în Piton . Rețineți că în Python 2.x, modulul este numit „Tkinter”, în timp ce în Python 3.x, este numit „tkinter”.
  2. Creați fereastra principală (container) : Fereastra principală servește drept container pentru toate elementele GUI pe care le veți adăuga mai târziu.
  3. Adăugați widget-uri în fereastra principală : Puteți adăuga orice număr de widget-uri, cum ar fi butoane, etichete, câmpuri de introducere etc., în fereastra principală pentru a proiecta interfața după cum doriți.
  4. Aplicați declanșatoare de evenimente widget-urilor : Puteți atașa declanșatoare de evenimente widget-urilor pentru a defini modul în care acestea răspund la interacțiunile utilizatorului.

Creați prima aplicație GUI Tkinter

Există două metode principale utilizate pe care utilizatorul trebuie să le amintească în timp ce creează aplicația Python cu GUI.

java mvc

Tk()

Pentru a crea o fereastră principală, tkinter oferă o metodă „Tk(screenName=None, baseName=None, className=’Tk’, useTk=1)’. Pentru a schimba numele ferestrei, puteți schimba className cu cel dorit. Codul de bază folosit pentru a crea fereastra principală a aplicației este:

mainloop()

Există o metodă cunoscută sub numele mainloop() este folosită atunci când aplicația dumneavoastră este gata de rulare. mainloop() este o buclă infinită folosită pentru a rula aplicația, pentru a aștepta să apară un eveniment și pentru a procesa evenimentul atâta timp cât fereastra nu este închisă.

Exemplu

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

Ieșire

img

Tkinter Widget

Există o serie de widget-uri pe care le puteți pune în aplicația dvs. tkinter. Unele dintre widget-urile majore sunt explicate mai jos:

1. Eticheta

Se referă la caseta de afișare în care puteți pune orice text sau imagine care poate fi actualizată oricând conform codului. Sintaxa generală este:

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()>

Ieșire

eticheta

2. Buton

Pentru a adăuga un buton în aplicația dvs., este utilizat acest widget. Sintaxa generală este:

w=Button(master, option=value)>

master este parametrul folosit pentru a reprezenta fereastra părinte. Există un număr de opțiuni care sunt folosite pentru a schimba formatul butoanelor. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule.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()>


Ieșire


3. Intrare

Este folosit pentru a introduce textul cu o singură linie de la utilizator.. Pentru introducerea textului pe mai multe linii, este utilizat widgetul Text. Sintaxa generală este:

w=Entry(master, option=value)>

master este parametrul folosit pentru a reprezenta fereastra părinte. Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire

constructor în java

4. CheckButton

Pentru a selecta orice număr de opțiuni prin afișarea unui număr de opțiuni pentru un utilizator ca butoane de comutare. Sintaxa generală este:

w = CheckButton(master, option=value)>

Există un număr de opțiuni care sunt folosite pentru a schimba formatul acestui widget. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire



5. Buton de radio

Este folosit pentru a oferi utilizatorului opțiunea cu opțiuni multiple. Acesta oferă utilizatorului mai multe opțiuni, iar utilizatorul trebuie să aleagă o singură opțiune. Sintaxa generală este:

w = RadioButton(master, option=value)>

Există un număr de opțiuni care sunt folosite pentru a schimba formatul acestui widget. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire

6. Listbox

Oferă utilizatorului o listă din care acesta poate accepta orice număr de opțiuni. Sintaxa generală este:

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

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire


7. Bara de defilare

Se referă la controlerul de diapozitive care va fi folosit pentru a implementa widget-urile enumerate. Sintaxa generală este:

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

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire

8. Meniul

Este folosit pentru a crea tot felul de meniuri folosite de aplicație. Sintaxa generală este:

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

Există un număr de opțiuni care sunt folosite pentru a schimba formatul acestui widget. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire

9. Combobox

Widgetul Combobox este creat folosind clasa ttk.Combobox din modulul tkinter.ttk. Valorile pentru Combobox sunt specificate folosind parametrul values. Valoarea implicită este setată folosind metoda setată. O funcție de gestionare a evenimentelor on_select este legată de Combobox folosind metoda bind, care actualizează o etichetă cu elementul selectat ori de câte ori este selectat un articol.

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()>

Ieșire

imaginea 2

c matrice de șiruri de caractere

10. Scară

Este folosit pentru a oferi un glisor grafic care permite selectarea oricărei valori din acea scară. Sintaxa generală este:

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

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire

unsprezece. Nivel superior

Acest widget este controlat direct de managerul de ferestre. Nu are nevoie de nicio fereastră părinte pentru a lucra. Sintaxa generală este:

w = TopLevel(master, option=value)>

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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

Ieșire

12. Mesaj

Se referă la textul cu mai multe rânduri și needitabil. Funcționează la fel ca la Label. Sintaxa generală este:

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

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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

Ieșire

13. Butonul de meniu

Este o parte a meniului de sus în jos care rămâne tot timpul pe fereastră. Fiecare buton de meniu are propria sa funcționalitate. Sintaxa generală este:

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

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire

14. Bara de progres

Aplicația Tkinter cu un widget Progressbar și un buton pentru a începe progresul. Când se face clic pe butonul, bara de progres se umple până la 100% într-o perioadă scurtă, simulând o sarcină care necesită timp.

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()>

Ieșire

progres

cincisprezece. SpinBox

Este o intrare a widget-ului „Intrare”. Aici, valoarea poate fi introdusă prin selectarea unei valori fixe a numerelor. Sintaxa generală este:

w = SpinBox(master, option=value)>

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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

Ieșire:

16. Text

Pentru a edita un text cu mai multe rânduri și a formata așa cum trebuie să fie afișat. Sintaxa generală este:

w =Text(master, option=value)>

Există un număr de opțiuni care sunt folosite pentru a schimba formatul textului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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

Ieșire

17. Pânză

Este folosit pentru a desena imagini și alte aspecte complexe, cum ar fi grafică, text și widget-uri. Sintaxa generală este:

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

Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Outpu

18. PannedWindow

Este un widget container care este folosit pentru a gestiona numărul de panouri aranjate în el. Sintaxa generală este:

w = PannedWindow(master, option=value)>

Master este parametrul folosit pentru a reprezenta fereastra părinte. Există un număr de opțiuni care sunt utilizate pentru a schimba formatul widget-ului. Numărul de opțiuni poate fi transmis ca parametri separati prin virgule. Unele dintre ele sunt enumerate mai jos.

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()>

Ieșire

Opțiunea de culoare în Tkinter

Acest exemplu demonstrează utilizarea diferitelor opțiuni de culoare în widget-urile Tkinter, inclusiv culorile de fundal și prim-plan active, culorile de fundal și de prim-plan, culorile de stare dezactivate și culorile de selecție. Fiecare widget din exemplu prezintă o opțiune de culoare diferită, oferind o reprezentare vizuală a modului în care aceste opțiuni afectează aspectul widget-urilor.

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()>

Ieșire

2024-04-2516-50-47online-video-cuttercom-ezgifcom-convertor-video-în-gif

Aflați mai multe pentru a îmbunătăți fontul: Font Tkinter

Managementul Geometriei

Tkinter oferă și acces la configurația geometrică a widget-urilor care pot organiza widget-urile în ferestrele părinte. Există în principal trei clase de manager de geometrie.

metoda pack().

Acesta organizează widget-urile în blocuri înainte de a le plasa în widget-ul părinte.

.06 sub formă de fracție
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()>

Ieșire


ambalaj

metoda grid().

Acesta organizează widget-urile în grilă (structură de tip tabel) înainte de a le plasa în widget-ul părinte.

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()>

Ieșire

grilă

metoda place().

Acesta organizează widget-urile plasându-le pe poziții specifice direcționate de programator.

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()>

Ieșire

loc