Počnite stvarati desktop aplikacije u Pythonu pomoću Tkinter GUI biblioteke

Počnite stvarati desktop aplikacije u Pythonu pomoću Tkinter GUI biblioteke

Tkinter je komplet alata za grafičko korisničko sučelje (GUI) koji biste trebali isprobati ako želite istražiti moć Pythona u stvaranju desktop aplikacija.





Ovdje ćemo pogledati osnove Tkinter GUI modula.





najbolje je pogledati na youtube -u

Postavljanje Tkintera

Obično ne morate instalirati tkinter zasebno ako ste instalirali kasniju verziju Pythona, počevši od Pythona 3. Međutim, knjižnica možda neće raditi sa starim verzijama Pythona. Ovo je uobičajen problem za korisnike Mac -a i Linuxa, jer ti OS -i obično dolaze sa starijim verzijama Pythona prema zadanim postavkama.





Općenito, za korištenje tkinter modul, provjerite jeste li preuzeli i instalirali najnoviju kompatibilnu verziju Pythona na svoje računalo sa službenog mjesta python.org web stranica.

Ako imate Mac, možete i preuzeti najnoviju verziju programa ActiveTcl, a tkinter sastavljač iz ActiveState .



Kako koristiti Tkinter

Tkinter ovisi o svom ugrađenom TK razred. I zaključuje sve događaje unutar grafičkog sučelja u a mainloop . Dakle, mainloop omot čini vaš tkinter izvršni kod.

Za početak tkinter :





from tkinter import Tk
Tk().mainloop()

Pokretanje gornjeg koda vrti prazno tkinter okvir.

Značajke prilagodbe Tkintera, međutim, nalaze se u njegovim ugrađenim widgetima.





Da biste koristili ove widgete, možete ih uvesti iz tkinter zamjenom iz tkintera uvoz Tk s:

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

Također možete prilagoditi veličinu prozora pomoću geometrija funkciju, a zatim odredite naslov pomoću titula widget od tkinter :

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

Widget Tkinter Label

Tkinter vam omogućuje pisanje običnih tekstova izravno u grafičko sučelje pomoću Označiti widget:

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

The rešetka () metoda je, međutim, alternativa paket() metoda. Lijepi vaše widgete za GUI, čineći ih vidljivim.

Također možete odrediti font za svoj Označiti tekst:

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

Rad s widgetima gumba u Tkinteru

Gumbi su neki od najčešće korištenih widgeta u tkinter . Ove gumbe možete kliknuti u svoj GUI pomoću različitih ugrađenih widgeta za gumbe.

Evo kako dodati primarni gumb svom grafičkom sučelju pomoću Dugme widget:

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

The bg i fg ključne riječi opisuju boju pozadine gumba i boju teksta unutar njega.

Također možete prilagoditi dimenziju gumba uključivanjem visina i širina parametri:

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

Evo rezultata za to:

kako pronaći svoj test strasti

A ako želite gumb učiniti vizualno privlačnijim, možete uključiti i olakšanje ključnu riječ, a zatim prilagodite širinu obruba:

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

A to izgleda ovako:

Zamijeniti PODIZAN s RAVAN da vidim kako to prolazi.

Možete dodati koliko god gumba želite. No, pazite da izbjegnete preklapanje sadržaja.

Da biste izbjegli preklapanje, možete odrediti položaj retka i stupca za svaki gumb:

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

Izborno naredba ključna riječ dodaje događaje u Dugme widget. U biti, usidruje izbornu funkciju koja obrađuje određene događaje kada pritisnete gumb.

Kod ispod, na primjer, množi vrijednost svakog gumba sa 6 kada ga pritisnete. Temelji se na unaprijed definiranoj funkciji:

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

U gornjem kodu, pritiskanje gumba obrađuje događaj množenja. The Dugme widget zatim pokazuje na taj rukovatelj događajima pomoću anonimnog lambda funkcija.

A ako ste zabrinuti zbog jastučići ključna riječ, jasno razdvaja svaki gumb u nizu. Zamjenjujući ovo sa padx odvaja gumbe po stupcu. Možete koristiti obje ključne riječi istodobno za odvajanje gumba na obje osi kako želite.

Međutim, ne želite ponovno izumiti kotačić za svaki gumb kao što ste to učinili u prethodnom kodu. Ovo usporava vrijeme izvođenja, a otežava čitanje vašeg koda i sužava ga.

Ali možeš koristiti for petlju kako bi se izbjeglo ovo ponavljanje.

Dakle, evo kraće i bolje verzije gornjeg koda:

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

Istražimo dalje moć za petlja za dodavanje gumba izbornika vašem grafičkom sučelju:

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

Dodavanje gumba za provjeru vašem grafičkom sučelju također je prilično jednostavno:

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

Slobodno pomnožite taj gumb za provjeru pomoću za petlje, kao što smo to učinili ranije.

Kako stvoriti padajući izbornik pomoću Tkinter -ovog widgeta za izbornik

The Jelovnik widget omogućuje vam oblikovanje padajućih izbornika na koje je moguće kliknuti tkinter .

Kao što je ranije rečeno, tkinter nudi mnoge mogućnosti widgeta. Neke ćete od njih upotrijebiti prilikom dizajniranja padajućeg izbornika.

Evo nekih uobičajenih opcija widgeta na koje ćete naići prilikom stvaranja padajućeg izbornika:

  • add_cascade: Prikazuje oznaku izbornika i lijepi je gdje pripada.
  • add_separator: Ograničava podizbornike i grupira ih u gornje i donje podizbornike.
  • add_command: Ovdje podmeniju dajete naziv. U konačnici, prihvaća argument naredbe u kojem možete navesti rukovatelj događajem.

Evo padajućeg primjera koji koristi ove tri opcije:

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

Pogledajte kako to izgleda:

Izbornik Tkinter Options

An Izbornik opcija , za razliku od Jelovnik padajućeg izbornika, prebacuje svoju oznaku na odabranu opciju.

Iako možete odrediti zadanu vrijednost oznake za izbornik opcija, ona prema zadanim postavkama nema oznaku.

Povezano: Ideje za Python projekte prikladne za početnike

Evo kako stvoriti izbornik opcija u 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()

Izradite stolnu aplikaciju za višekratnu uporabu s Tkinterom

Tkinter nudi niz značajki koje vam pomažu u izradi interaktivnih GUI desktop aplikacija. Iako možda nema mnogo fleksibilnih značajki za uljepšavanje poput nekih drugih Python GUI modula, ipak je zgodan alat vrijedan istraživanja. I dok primjeri ovdje prikazuju samo neke od osnovnih koncepata, tkinter nudi naprednije značajke koje možete isprobati.

kako napraviti vlastite poslužitelje

S tim u vezi, možete izgraditi stolni kalkulator sa grafičkim korisničkim sučeljem, izraditi mini uređivač teksta ili čak stvoriti stolnu aplikaciju s grafičkim sučeljem za upravljanje zalihama. Ako želite raširiti krila i postati glavni GUI za stolna računala, možete pogledati i druge GUI module Pythona.

Udio Udio Cvrkut E -pošta GUI? Što je grafičko korisničko sučelje?

Koristite li GUI? Velike su šanse jer ih koristite svaki dan.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Piton
O autoru Idisou Omisola(94 objavljena članka)

Idowu je strastven u bilo čemu pametnom tehnologiji i produktivnosti. U slobodno vrijeme igra se kodiranjem i prebacuje na šahovsku ploču kad mu je dosadno, ali također voli povremeno odustati od rutine. Njegova strast prema pokazivanju ljudi suvremene tehnologije motivira ga da piše više.

Više od Idowua Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu