Tkinter este un set de instrumente Graphical User Interface (GUI) pe care ar trebui să îl încercați dacă doriți să explorați puterea Python în crearea de aplicații desktop.
Aici, aruncăm o privire la elementele de bază ale modulului GUI Tkinter.
Configurare Tkinter
De obicei, nu este nevoie să instalați tkinter separat dacă ați instalat o versiune ulterioară a Python, începând cu Python 3. Este posibil însă că biblioteca nu funcționează cu versiunile vechi Python. Aceasta este o problemă obișnuită pentru utilizatorii de Mac și Linux, deoarece aceste sisteme de operare vin de obicei cu versiuni mai vechi ale Python în mod implicit.
În general, pentru a utiliza tkinter modul, asigurați-vă că descărcați și instalați cea mai recentă versiune compatibilă de Python pe computerul dvs. de la oficial python.org site-ul web.
Dacă sunteți pe Mac, alternativ, puteți descărca cea mai recentă versiune de ActiveTcl, a tkinter compilator din ActiveState.
Cum se utilizează Tkinter
Tkinter depinde de încorporat
TK clasă. Și încheie toate evenimentele din GUI într-un mainloop. Astfel, mainloop wrapper te face tkinter cod executabil.Pentru a începe cu tkinter:
din tkinter import Tk
Tk (). Mainloop ()
Rularea codului de mai sus răsucește un gol tkinter cadru.
Cu toate acestea, caracteristicile de personalizare ale Tkinter se află în widget-urile sale încorporate.
Pentru a utiliza aceste widget-uri, le puteți importa din tkinter prin înlocuire din tkinter import Tk cu:
din importul tkinter *
t = Tk ()
t.mainloop ()
De asemenea, puteți ajusta dimensiunea ferestrei cu geometrie funcția și apoi specificați un titlu folosind titlu widget de tkinter:
t = Tk ()
t.geometrie ("600x600")
t.title („Tutorial Tk”)
t.mainloop ()
Tkinter vă permite să scrieți texte simple direct pe GUI folosind Eticheta widget:
t = Tk ()
Etichetă (t, text = "Tutorial MUO Tkinter"). Grid ()
t.mainloop ()
grilă() cu toate acestea, metoda este o alternativă la ambalaj() metodă. Vă fixează widget-urile pe GUI, făcându-le vizibile.
De asemenea, puteți specifica un font pentru Eticheta text:
t = Tk ()
Etichetă (t, text = "Tutorial MUO Tkinter", font = (60)). Grid ()
t.mainloop ()
Butoanele sunt unele dintre cele mai utilizate widget-uri din tkinter. Și puteți adăuga aceste butoane care pot fi făcute clic pe GUI folosind diferite widget-uri de butoane încorporate.
Iată cum puteți adăuga un buton principal la interfața grafică utilizând Buton widget:
t = Tk ()
Buton (t, text = „Clicabil”, bg = „negru”, fg = „alb”). Grilă ()
t.mainloop ()
bg și fg cuvintele cheie descriu culoarea de fundal a butonului și, respectiv, culoarea textului din interiorul acestuia.
De asemenea, puteți ajusta dimensiunea butonului incluzând fișierul înălţime și lăţime parametrii:
t = Tk ()
Buton (t, text = „Clicabil”, bg = „negru”, fg = „alb”, înălțime = „2”, lățime = „10”). Grilă ()
t.mainloop ()
Iată rezultatul pentru asta:
Și dacă doriți să faceți butonul mai atrăgător din punct de vedere vizual, puteți include un relief cuvânt cheie și apoi ajustați lățimea marginii sale:
t = Tk ()
Buton (t, text = „Clicabil”, bg = „albastru”, fg = „alb”,
înălțime = 2, lățime = 10, relief = RIDICAT, lățime de margine = 6) .grid ()
t.mainloop ()
Și asta arată așa:
A inlocui RIDICAT cu APARTAMENT pentru a vedea cum ajunge asta.
Puteți adăuga câte butoane doriți. Dar aveți grijă să evitați suprapunerea conținutului.
Pentru a evita suprapunerea, puteți specifica poziția rândului și a coloanei pentru fiecare buton:
t = Tk ()
Buton (t, text = 1, bg = "negru", fg = "alb"). Grilă (rând = 1, coloană = 1)
Buton (t, text = 2, bg = "negru", fg = "alb"). Grilă (rând = 2, coloană = 1)
Buton (t, text = 3, bg = "negru", fg = "alb"). Grilă (rând = 3, coloană = 1)
Buton (t, text = 4, bg = "negru", fg = "alb"). Grilă (rând = 4, coloană = 1)
t.mainloop ()
Un opțional comanda Cuvântul cheie, cu toate acestea, adaugă evenimente la Buton widget. În esență, ancorează o funcție opțională care gestionează anumite evenimente atunci când faceți clic pe un buton.
Codul de mai jos, de exemplu, înmulțește valoarea fiecărui buton cu 6 când faceți clic pe el. Și se bazează pe o funcție predefinită:
apăsarea butonului def (r):
r = 6 * r
Etichetă (t, text = r, font = (60)). Grilă (rând = 5, coloană = 2)
t = Tk ()
Buton (t, text = 1, bg = "negru", fg = "alb", lățime = 10, înălțime = 2,
comanda = lambda: buton (1)). grilă (rând = 1, coloană = 1, pady = 6)
Buton (t, text = 2, bg = "negru", fg = "alb", lățime = 10,
comanda = lambda: buton (2)). grilă (rând = 2, coloană = 1, pady = 6)
Buton (t, text = 3, bg = "negru", fg = "alb", lățime = 10,
comanda = lambda: buton (3)). grilă (rând = 3, coloană = 1, pady = 6)
Buton (t, text = 4, bg = "negru", fg = "alb", lățime = 10,
comanda = lambda: buton (4)). grilă (rând = 4, coloană = 1, pady = 6)
t.mainloop ()
În codul de mai sus, apăsarea butonului gestionează evenimentul de multiplicare. Buton widgetul indică apoi către acel gestionar de evenimente folosind un anonim lambda funcţie.
Și dacă ești îngrijorat de pady cuvânt cheie, separă distinct fiecare buton de pe rând. Înlocuind acest lucru cu padx separă butoanele din coloană. Și puteți utiliza ambele cuvinte cheie simultan pentru a separa butoanele de pe ambele axe după cum doriți.
Acestea fiind spuse, nu doriți să reinventați roata pentru fiecare buton, așa cum ați făcut în codul anterior. Acest lucru încetinește timpul de execuție, plus vă face codul greu de citit și restrâns.
Dar tu poti folosiți o buclă for pentru a evita această repetare.
Iată deci o versiune mai scurtă și mai bună a codului de mai sus:
apăsarea butonului def (r):
r = 6 * r
Etichetă (t, text = r, font = (60)). Grilă (rând = 5, coloană = 2)
t = Tk ()
a = [1, 4, 6, 7]
pentru i într-un:
j = lambda y = i: buton (y)
Buton (t, text = i, bg = "negru", fg = "alb", lățime = 10, înălțime = 2,
command = j) .grid (rând = i, coloană = 1, pady = 6)
t.mainloop ()
Butoane de meniu și butoane de verificare
Să explorăm în continuare puterea pentru bucla pentru a adăuga butoane de meniu la interfața grafică:
din importul tkinter *
t = Tk ()
butoane = ["Fișiere", "Tablou de bord", "Meniu", "Setări", "Ajutor"]
m = 0
pentru i în raza (len (butoane)):
# Obțineți fiecare text în matricea de butoane folosind un index de listă pe măsură ce m crește.
# Apoi lăsați coloana să crească cu 1 prin lungimea matricei:
Buton Meniu (t, text = butoane [m], bg = „albastru”, fg = „alb”). Grilă (rând = 5, coloană = i)
m + = 1
t.mainloop ()
Adăugarea butoanelor de verificare la interfața grafică este, de asemenea, destul de ușoară:
t = Tk ()
Buton de verificare (t, text = "Selectare opțiune"). Grilă ()
t.mainloop ()
Simțiți-vă liber să multiplicați acel buton de verificare folosind butonul pentru buclă, așa cum am făcut mai devreme.
Meniul widgetul vă permite să creați meniuri drop-down în care puteți face clic tkinter.
Așa cum am spus mai devreme, tkinter oferă multe opțiuni widget. Și le veți utiliza pe unele în timp ce vă proiectați meniul drop-down.
Iată câteva dintre opțiunile obișnuite ale widgeturilor pe care le veți întâlni în timp ce efectuați o listă verticală:
- add_cascade: Afișează o etichetă de meniu și o lipeste acolo unde îi aparține.
- add_separator: Demarcă submeniurile și le grupează în submeniuri superioare și inferioare.
- add_comand: Aici dați submeniului un nume. În cele din urmă, acceptă un argument de comandă în care puteți specifica un gestionar de evenimente.
Iată un exemplu derulant care folosește aceste trei opțiuni:
din importul tkinter *
t = Tk ()
fileOptions = ["Nou", "deschis", "Salvare", "Salvare ca"]
fileOptionsAfterseparator = ["Import", "Export", "Exit"]
viewOptions = ["Transformare", "Editare", "Creare"]
menuBar = Meniu (t)
file = Menu (menuBar, tearoff = 0)
pentru i în fișier Opțiuni:
file.add_command (etichetă = i, comandă = Niciuna)
file.add_separator ()
pentru i în fileOptionsAfterseparator:
file.add_command (etichetă = i, comandă = Niciuna)
menuBar.add_cascade (label = "Fișier", menu = fișier)
Vizualizare = Meniu (menuBar, tearoff = 0)
pentru i în viewOptions:
View.add_command (etichetă = i, comandă = Niciuna)
menuBar.add_cascade (label = "Vizualizare", menu = Vizualizare)
t.config (menu = menuBar)
t.mainloop ()
Vedeți cum arată:
Meniul Opțiuni Tkinter
Un Meniul Option, spre deosebire de Meniul derulant, își schimbă eticheta la o opțiune selectată.
Deși puteți specifica o valoare de etichetă implicită pentru un meniu de opțiuni, aceasta nu are etichetă în mod implicit.
Legate de: Idei de proiect Python potrivite pentru începători
Iată cum puteți crea un meniu de opțiuni în tkinter:
t = Tk ()
Omenu = StringVar () #setează tipul variabil al opțiunilor
Omenu.set ("MUO") #specificați o valoare implicită pentru pictograma meniu
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial"). Grid ()
t.mainloop ()
Construiți o aplicație desktop reutilizabilă cu Tkinter
Tkinter oferă o serie de funcții care vă ajută să creați aplicații interactive GUI pentru desktop. Deși este posibil să nu aibă multe caracteristici flexibile de înfrumusețare, cum ar fi alte module GUI Python, este totuși un instrument util care merită explorat. Și, deși exemplele de aici arată doar câteva dintre conceptele de bază, tkinter oferă funcții mai avansate pe care le puteți încerca.
Acestea fiind spuse, puteți construi un calculator desktop GUI, puteți crea un mini editor de text sau chiar creați o aplicație desktop GUI pentru a vă gestiona stocurile. Dacă doriți să vă întindeți aripile și să deveniți un GUI major pentru desktop, puteți verifica chiar și alte module GUI ale Python.
Folosiți o interfață grafică? Sunt șanse să le aveți, deoarece le folosiți în fiecare zi.
Citiți în continuare
- Programare
- Piton
Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place, de asemenea, să se rupă de rutină din când în când. Pasiunea sa pentru a arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai multe.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Faceți clic aici pentru a vă abona