Python - Korisnička sučelja, dio 2

Sadržaj
Kao što smo mogli vidjeti u prvom dijelu vodiča, stvaranje prozora je prilično jednostavno, u ovom drugom dijelu idemo malo dalje ulazeći dublje u ono što smo ostavili kao bazu i proširujemo kôd kako bismo stvorili nešto sa veći stupanj složenosti.
Dodajte gumb
Nakon što napustimo prozor, unutar njega mora postojati više elemenata, a jedan od najosnovnijih, ali vrlo važnih je gumb, za njegovo dodavanje ćemo dodati btn = wx.Button (pobjeda) u našem kodu, da vidimo:
 uvoz wx app = wx.App () win = wx.Frame (nema) btn = wx.Button (win) win.Show () app.MainLoop () 

Kao što vidimo, to je praktički isti kod kao gore, međutim uključujemo upute koje dodaju gumb, na slici možemo vidjeti rezultat:

Rezultat nije baš estetski budući da gumb zauzima cijeli prozor, ali ne trebamo se obeshrabriti, u sljedećem odjeljku vidjet ćemo kako to kontrolirati kako bismo generirali ugodniji rezultat za oko.
Oznake i položaji
U prethodnom smo odjeljku shvatili da, iako je vrlo lako dodati još elemenata, moramo ih moći distribuirati tako da na grafičkoj razini bude u skladu s onim što želimo postići, za to možemo uspostaviti oznake, veličine i položaje za elemente unutar prozora.
Vidjet ćemo sljedeći kod s odgovarajućim rezultatom kako bismo mogli bolje analizirati i razumjeti proces.
 import wx app = wx.App () win = wx.Frame (Nema,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Spremi') win.Show (Prikaži ) app.MainLoop () 

Kao što vidimo, postavljamo vrijednost u naslov prozora, kao argument za konstruktor prilikom instanciranja, zatim stvaramo dva gumba i svakom dodamo oznaku ili oznaku, možemo vidjeti rezultat, iako možda neće budi ono što očekujemo:

Doista možemo vidjeti da nešto ne izgleda kako treba i da jedan od gumba nije vidljiv, to je zato što ne navodimo njegov položaj, stoga je skriven ispod drugog gumba.
To ćemo ispraviti sljedećim kodom:
 import wx app = wx.App () win = wx.Frame (Ništa ,, veličina = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), size = (80, 25)) saveButton = wx.Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), veličina = (210, 25)) sadržaj = wx.TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) aplikacija .MainLoop () 

Ovim kodom, osim ispravljanja detalja s položajima gumba, koristimo i dodajemo neke tekstualne kontrole, da vidimo na sljedećoj slici kako bi sve izgledalo.

Stvari su već u boljem stanju, međutim sada se pitamo, što ćemo s ovim prozorom, jer ćemo u sljedećem odjeljku definirati neke funkcionalnosti.
Upravljanje događajima
Koristeći ovu vrstu pristupa za kreiranje naših programa, i vizija onoga što radimo također se malo mijenja, u ovom slučaju i radnje koje program izvršava nazvat ćemo događajima, ti se događaji pokreću radnjama korisnika poput klika na gumb, pa smo malo promijenili kôd tako da uključuje ove događaje:
loadButton.Bind (wx.EVT_BUTTON, učitavanje)

Ta nas linija čini unijom između funkcije učitavanja i elementa, u ovom slučaju gumba, pa već znamo da prvo moramo definirati funkciju, a zatim je dodijeliti u događaju povezanom s elementom.
Pogledajmo konačni kod:
 uvoz wx def učitavanje (događaj): file = open (filename.GetValue ()) contents.SetValue (file.read ()) file.close () def save (event): file = open (filename.GetValue (), ' w ') file.write (contents.GetValue ()) file.close () app = wx.App () win = wx.Frame (Nema ,, veličina = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Spremi') saveButton.Bind (wx.EVT_BUTTON, spremi) filename = wx.TextCtrl (bkg) content = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (naziv datoteke, proporcija = 1, zastava = wx.EXPAND) hbox.Add (loadButton, proporcija = 0, zastava = wx.LEFT, obrub = 5) hbox.Add (saveButton, proporcija = 0, zastava = wx.LEFT, obrub = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proporcija = 0, zastava = wx.EXPAND | wx.ALL, border = 5) vbox.Add (sadržaj, proporcija = 1, zastava = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, obrub = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Ono što ovaj program radi je uređivanje tekstualnih datoteka na prilično jednostavan način, međutim natjeralo nas je da koristimo mnoge funkcije i aplikacije.
Ovime završavamo vodič, znajući kako koristiti a priručnik korisničko sučelje, potičemo vas da istražite različite postojeće alate, uključujući one koji su ekskluzivni za određeni operacijski sustav, imajući u vidu da će nam svaki alat ponekad biti od koristi.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