Darbo su grafinėmis „Python“ vartotojo sąsajomis pradžia

Turinys

Šioje pamokoje mes ketiname įdėti GUI programų diegimo „Python“ pavyzdžiai, yra daug modulių, skirtų dirbti su grafine sąsaja, čia mes pasirinkome Tkinteris, nes jis yra iš anksto įdiegtas kartu su „Python“ ir padės mums pamatyti, kaip mes dirbame tokiu būdu, nors pabaigoje pamatysime nedidelį pavyzdį PyQt.

Galime patikrinti, ar Tkinteris modulis yra tinkamai sumontuotas naudojant:

 python -m tkinter
Pastaba„Python 2“ tai būtų pirmasis didžiosios raidės t: „Tkinter“, nes „Python 3“ jis buvo pervadintas.

Jei jis tinkamai įdiegtas, pamatysime, kad rodomas toks langas kaip žemiau:

Jei klaidos nematysime, tai parodys, kad ji negali rasti šio modulio:

Norėdami įdiegti modulį „Python 3“ Debian distribucijose:

 sudo apt-get install python3-tk
Kitų versijų ieškokite šioje nuorodoje. Pamoka skirta sukurti pirmąjį įspūdį apie darbą su „GUI“ „Python“. Jei esate naujokas šioje temoje, tai jums padės, jei ieškote pažangių temų, tai nėra tinkama pamoka.

PastabaČia mes ketiname dirbti su „Python 3“, importuojame biblioteką taip:

 importuoti tkinterį
Tačiau „Python 2“ turite jį importuoti taip, mes jau kalbėjome apie jo pervadinimą:
 importuoti „Tkinter“

Pamokos pavyzdį pradėsime pavyzdžiu, pradėsime nuo paprasčiausio ir pabaigoje jį apsunkinsime.

1 pavyzdys
Tam sukursime paprastą langą, parašysime šį kodą:

 importuoti tkinter langą = tkinter.Tk () window = tkinter.mainloop ()
Pirmoje eilutėje mes importuojame reikiamą modulį, kita sukuria pagrindinį langą ir, jei pašalinsime paskutinę instrukciją, langas nebus matomas, kai vykdysime kodą. Pavyzdžio išvestis:

Šis pavyzdys buvo labai ilgas, 3 eilutės … Pereikime prie kito.

2 pavyzdys
Šiame pavyzdyje, kuris nėra daug ilgesnis už ankstesnį, mes sukursime langą, kaip ir 1 pavyzdyje, bet šiek tiek jį sukonfigūruosime, pakeisime spalvą, dydį ir pavadinimą.

 importuoti tkinter kaip tk window = tk.Tk () window.config (bg = "blue") window.geometry ("400x300") window.title ("Example2") window.mainloop ()
Pirmoje eilutėje vis dar importuojamas „tkinter“ modulis, tačiau mes suteikiame jam slapyvardį, kad galėtume naudoti trumpesnį žodį kode. Mes sukursime langą, kaip ir ankstesniame pavyzdyje. Kitos 3 eilutės sukonfigūruos spalvą, dydį ir pavadinimą. Paskutinė eilutė, kurią mes jau žinome. Pavyzdžio rezultatas yra toks:

Iki šiol viskas buvo labai paprasta, tęskime daugiau pavyzdžių.

3 pavyzdys
Dabar pagrindiniame lange sukursime mygtuką, kuris mums taip pat labai nesudėtys, pažiūrėkime kodą:

 importuoti tkinter kaip tk window = tk.Tk () window.geometry ("200x150") button = tk.Button (window, text = "Testing") button.grid (eilutė = 1, stulpelis = 1) window.mainloop ()
Vienintelės eilutės, kurias reikia paaiškinti, yra šios:
 button = tk.Button (window, text = "Testing") button.grid (eilutė = 1, stulpelis = 1)
Pirmasis sukuria mygtuką su pavadinimu Testing (mygtuką), ir mes jį priskiriame langas, kuris yra mūsų pagrindinio lango kintamasis. Antrajame mygtukas yra 1 eilutėje ir stulpelyje. Vykdymas parodys mums šiuos dalykus:

Mygtukas yra tiesiog rodomas, jis neveikia, nes jis neteikia įvykių, mes tai padarysime šiame pavyzdyje.

4 pavyzdys
Dabar dalyvausime renginyje, kad atidarytume antrą langą, kuris nebus pagrindinis, pažiūrėkime kodą:

 importuoti tkinter kaip tk def open (): window2 = tk.Toplevel (window) window = tk.Tk () window.geometry ("200x150") button = tk.Button (window, text = "Open", command = open) button.grid (eilutė = 1, stulpelis = 1) window.mainloop () 
Mes pamatysime naujas eilutes, atidaryta funkcija turės šią instrukciją, kuri sukurs pagrindinio „vaiko“ langą.
 window2 = tk.Toplevel (langas)
Ir mygtukas šiek tiek pasikeitė, atkreipkite dėmesį komandą, yra vykdyti funkciją, šiuo atveju - iškviesti funkciją atviras:
 mygtukas = tk.Button (langas, tekstas = "Atidaryti", komanda = atidaryti)
Eikime į pavyzdį su klase.

5 pavyzdys
Tai paskutinis „tkinter“ pavyzdys ir jis bus ilgiausias, mes sukursime klasę, kad padarytume ką nors kita. Mes ketiname padaryti mažą langą, kurio dydžio pakeisti negalima, jame bus teksto etiketė ir mygtukas, kiekvieną kartą paspaudus mygtuką skaičius padidės. Pereikime prie kodo:

 importuoti „tkinter“ kaip „tk“ klasę „Application“ (): counter = 1 def __init __ (self): self.window = tk.Tk () self.window.geometry („300x60“) self.window.title („5 pavyzdys“) self . window.resizable (width = False, height = False) self.createButton () self.createLabel () self.window.mainloop () def createButton (self): self.button = tk.Button (self.window, text = "Padidinti", komanda = self.increase) self.button.pack () def createLabel (self): self.tag = tk.Label (self.window, text = "0", fg = "blue") self.tag . pack (pady = 10) def padidėjimas (self): self.tag ["text"] = self.counter self.counter + = 1 app = Application () 
Funkcijoje __init__ mes ketiname sukurti langą ir jį sukonfigūruoti, be to, iškviesime funkcijas createButton Y createLabel kad galėtume tikėti šiais elementais. Jei matėme ankstesnius pavyzdžius, tai neturėtų sukelti komplikacijų ar abejonių. Pradėdami programą turime langą su skaičiumi 0:

Jei spustelėsime mygtuką, skaičius padidės, pavyzdžiui, paspaudus 25 kartus, turėsime:

Šioje pamokoje pamatėme „tkinter“ modulio pagrindus, galėsite sukurti daug daugiau dalykų, jei norite čia gilintis, turite nuorodą į oficialų „Python“ puslapį, kuriame jie kalba apie „tkinter“.

Turite ir kitų „Python“ bibliotekų, kuriose galite užprogramuoti grafines sąsajas, kaip minėta pradžioje, kai kurios iš jų yra:

  • PyGTK
  • „wxPython“
  • PyQT

Kad galėtumėte šiek tiek palyginti „tkinter“ su kitu moduliu, pateiksime „PyQt“ pavyzdį.

Pavyzdys su PyQT
Norėdami paleisti šį pavyzdį turėsite įdiegti biblioteką, galite apsilankyti aukščiau pateiktoje nuorodoje. Mes sukursime 275x200 dydžio langą su pavadinimu PyQt4. Jis taip pat bus rodomas 300x300 pozicijoje

 importuoti sys iš PyQt4 importuoti QtGui taikymą = QtGui.QApplication (sys.argv) window = QtGui.QWidget () window.resize (275, 200) window.move (300, 300) window.setWindowTitle ('PyQt4 Example') langas. rodyti () sys.exit (application.exec_ ()) 
Jei vykdome kodą, gauname tokį rezultatą:

Nieko sudėtingo, kaip tai buvo pastebėta visoje pamokoje, galėtume ir toliau pateikti pavyzdžių, nes yra daug ką paliesti, tačiau su įžanga jau paruošiama praktikuoti kurti savo pavyzdžius, pridėti kitų elementų, pvz., Sąrašų, teksto laukeliai, kur rašyti ir pan.

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave