U ovom ćemo vodiču staviti Primjeri implementacije GUI aplikacija u Pythonu, postoji mnogo modula za rad s grafičkim sučeljem, ovdje smo odabrali Tkinter, budući da dolazi unaprijed instaliran s Pythonom i pomoći će nam da vidimo kako radimo na ovaj način, iako ćemo na kraju vidjeti mali primjer PyQt.
Možemo provjeriti je li Tkinter modul je ispravno instaliran pomoću:
python -m tkinterBilješkaU Pythonu 2 to bi bilo prvo veliko slovo t: Tkinter, budući da je u Pythonu 3 preimenovano.
Ako je pravilno instaliran, vidjet ćemo da se prikazuje prozor poput ovog u nastavku:
Ako nećemo vidjeti pogrešku, to će značiti da ne može pronaći ovaj modul:
Za instaliranje modula u Python 3 unutar Debian distribucija:
sudo apt-get install python3-tkZa ostale verzije pogledajte sljedeću vezu. Vodič je usmjeren na stvaranje prvog dojma o radu s grafičkim sučeljem u Pythonu, ako ste tek počeli koristiti ovu temu, onda će vam pomoći, ako tražite napredne teme, ovo nije pravi vodič.
BilješkaOvdje ćemo raditi s Pythonom 3, biblioteku uvozimo na sljedeći način:
uvoziti tkinterMeđutim, u Pythonu 2 morate ga uvesti na sljedeći način, već smo govorili o preimenovanju:
uvoz Tkinter
Primjer vodiča počet ćemo primjerom, počet ćemo s najjednostavnijim i na kraju ga zakomplicirati.
Primjer 1
Napravit ćemo jednostavan prozor za to, upisujemo sljedeći kod:
import tkinter window = tkinter.Tk () window = tkinter.mainloop ()U prvi redak uvozimo potrebni modul, sljedeći stvara glavni prozor, a ako uklonimo posljednju uputu prozor se neće vidjeti kada izvršimo kôd. Ishod primjera:
Ovaj primjer je bio jako dug, 3 retka … Prijeđimo na sljedeći.
Primjer 2
U ovom primjeru, koji nije mnogo duži od prethodnog, stvorit ćemo prozor kao što smo učinili u primjeru 1, ali ćemo ga malo konfigurirati, promijenit ćemo boju, veličinu i naslov.
uvesti tkinter kao tk window = tk.Tk () window.config (bg = "blue") window.geometry ("400x300") window.title ("Example2") window.mainloop ()Prvi redak još uvijek uvozi tkinter modul, ali mi mu dajemo pseudonim kako bismo mogli koristiti kraću riječ u kodu. Izradit ćemo prozor kao u prethodnom primjeru. Sljedeća 3 retka konfigurirat će boju, veličinu i naslov po redu. Posljednji redak već znamo. Ishod primjera je sljedeći:
Do sada je sve bilo vrlo jednostavno, nastavimo s još primjera.
Primjer 3
Sada ćemo stvoriti gumb unutar glavnog prozora, koji nas također neće puno komplicirati, pogledajmo kod:
uvesti tkinter kao tk window = tk.Tk () window.geometry ("200x150") button = tk.Button (window, text = "Testing") button.grid (row = 1, column = 1) window.mainloop ()Jedine linije koje trebaju objašnjenje su:
button = tk.Button (window, text = "Testiranje") button.grid (red = 1, stupac = 1)Prvi stvara gumb s imenom Testiranje (dugme), a mi ga dodjeljujemo prozor, koja je varijabla našeg glavnog prozora. Drugi gumb postavlja u red i stupac 1. Izvođenje će nam pokazati sljedeće:
Gumb se jednostavno prikazuje, ne radi, budući da ne poslužuje događaje, to ćemo učiniti u sljedećem primjeru.
Primjer 4
Sada ćemo prisustvovati događaju za otvaranje drugog prozora, koji neće biti glavni, da vidimo kod:
uvesti tkinter kao tk def open (): window2 = tk.Toplevel (window) window = tk.Tk () window.geometry ("200x150") button = tk.Button (window, text = "Open", naredba = open) button.grid (redak = 1, stupac = 1) window.mainloop ()Vidjet ćemo nove retke, funkcija open imat će sljedeću uputu, koja će stvoriti "podređeni" prozor glavnog.
window2 = tk.Toplevel (prozor)Gumb se malo promijenio, primijetite naredba, je za izvršavanje funkcije, u ovom slučaju za pozivanje funkcije otvoren:
button = tk.Button (window, text = "Open", naredba = open)Idemo na primjer s klasom.
Primjer 5
Ovo je posljednji primjer tkintera i bit će najduži, stvorit ćemo klasu koja će raditi nešto drugačije. Ono što ćemo učiniti je mali prozorčić kojem se ne može promijeniti veličina, imat će tekstualnu oznaku i gumb, svaki put kada pritisnemo gumb broj će se povećavati. Prijeđimo na kod:
uvesti tkinter kao tk klasu Application (): counter = 1 def __init __ (self): self.window = tk.Tk () self.window.geometry ("300x60") self.window.title ("Primjer 5") self . window.resizable (width = False, height = False) self.createButton () self.createLabel () self.window.mainloop () def createButton (self): self.button = tk.Button (self.window, text = "Povećanje", naredba = self.increase) self.button.pack () def createLabel (self): self.tag = tk.Label (self.window, text = "0", fg = "plavo") self.tag . pack (pady = 10) def povećanje (self): self.tag ["text"] = self.counter self.counter + = 1 app = Application ()U funkciji __u tome__ stvorit ćemo prozor i konfigurirati ga, osim pozivanja funkcija createButton Y createLabel da bismo vjerovali tim elementima. Ako smo vidjeli prethodne primjere, ovaj ne bi trebao izazvati komplikacije ili sumnje. Prilikom pokretanja programa imamo prozor s brojem 0:
Ako pritisnemo gumb, broj se povećava, na primjer nakon klika 25 puta imamo sljedeće:
U ovom smo vodiču vidjeli osnove tkinter modula, moći ćete stvoriti još mnogo toga, ako ste zainteresirani za produbljivanje ovdje imate vezu do službene Python stranice na kojoj govore o tkinteru.
Imate druge knjižnice u Pythonu s kojima možete programirati grafička sučelja kao što je rečeno na početku, neke od njih su:
- PyGTK
- wxPython
- PyQT
Kako biste mogli usporediti tkinter s drugim modulom, dat ćemo primjer PyQt -a.
Primjer s PyQT -om
Za pokretanje ovog primjera morat ćete instalirati knjižnicu, možete posjetiti vezu koju smo stavili gore. Napravit ćemo prozor veličine 275x200 i s naslovom Primjer PyQt4. Također će se pojaviti na položaju 300x300
import sys iz PyQt4 import QtGui application = QtGui.QApplication (sys.argv) window = QtGui.QWidget () window.resize (275, 200) window.move (300, 300) window.setWindowTitle ('Primjer PyQt4') prozor. show () sys.exit (application.exec_ ())Ako izvršimo kôd, dobit ćemo sljedeći izlaz:
Ništa komplicirano, kako se to promatralo tijekom vodiča, mogli bismo nastaviti primjerivati, jer ima mnogo toga na što se treba dotaknuti, ali s uvodom vas već priprema da vježbate stvaranje vlastitih primjera, dodajući druge elemente, poput popisa, kutije s tekstom gdje pisati itd.
Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod