Începeți să creați aplicații desktop în Python cu biblioteca GUI Tkinter

Începeți să creați aplicații desktop în Python cu biblioteca GUI Tkinter

Tkinter este un set de instrumente Graphic 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.





cum să conectați airpod-urile la Xbox One

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 ca biblioteca să nu funcționeze cu versiunile Python vechi. 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 :





from 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:

from tkinter import *
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.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

Widget Tkinter Label

Tkinter vă permite să scrieți texte simple direct pe GUI utilizând Eticheta widget:

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

The 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()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

Lucrul cu butoanele Widget-uri din Tkinter

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()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

The 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 parametri:

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

Iată rezultatul pentru asta:

iphone este posibil ca acest accesoriu să nu fie acceptat

Și dacă doriți să faceți butonul mai atractiv din punct de vedere vizual, puteți include un relief cuvânt cheie și apoi reglați lățimea marginii:

t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=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()
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 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ă:

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

În codul de mai sus, apăsarea butonului gestionează evenimentul de multiplicare. The Buton widgetul indică apoi gestionarul de evenimente folosind un anonim lambda funcţie.

Și dacă ești îngrijorat de tampoane cuvânt cheie, separă în mod 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 că 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:

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

Să explorăm în continuare puterea pentru bucla pentru a adăuga butoane de meniu la interfața grafică:

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

Adăugarea butoanelor de verificare la interfața grafică este, de asemenea, destul de ușoară:

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

Simțiți-vă liber să multiplicați acel buton de verificare folosind pentru buclă, așa cum am făcut mai devreme.

Cum să creați un meniu drop-down cu Widgetul de meniu al lui Tkinter

The Meniul widgetul vă permite să creați meniuri derulante care pot fi făcute 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 faceți o listă derulantă:

  • add_cascade: Afișează o etichetă de meniu și o fixează acolo unde îi aparține.
  • add_separator: Demarcă submeniurile și le grupează în submeniuri superioare și inferioare.
  • add_command: 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:

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

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

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 la îndemână care merită explorat. Și în timp ce exemplele de aici arată doar câteva dintre conceptele de bază, tkinter oferă funcții mai avansate pe care le puteți încerca.

cum se remediază wifi nu are o configurație IP validă

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.

Acțiune Acțiune Tweet E-mail GUI? Ce este o interfață grafică pentru utilizator?

Folosiți o interfață grafică? Șansele sunt că aveți, deoarece le folosiți în fiecare zi.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Piton
Despre autor Idisou Omisola(94 articole publicate)

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.

Mai multe de la Idowu Omisola

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona