Početak rada s grafičkim korisničkim sučeljima u Pythonu

Sadržaj

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 tkinter
Bilješ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-tk
Za 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 tkinter
Međ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
wave wave wave wave wave