Python - Interfețe utilizator, partea 2

Cuprins
Așa cum am putut vedea în prima parte a tutorialului, crearea unei ferestre este destul de simplă, în această a doua parte vom merge puțin mai departe, aprofundând ceea ce am lăsat ca bază și extindând codul pentru a crea ceva cu un grad mai ridicat de complexitate.
Adăugați un buton
Odată ce părăsim fereastra, în interiorul ei trebuie să existe mai multe elemente și unul dintre cele mai elementare, dar foarte importante este butonul, pentru ao adăuga, vom adăuga btn = wx.Button (câștiga) în codul nostru, să vedem:
 import wx app = wx.App () win = wx.Frame (None) btn = wx.Button (win) win.Show () app.MainLoop () 

După cum putem vedea, este practic același cod ca mai sus, cu toate acestea includem instrucțiunea care adaugă butonul, în imagine putem vedea rezultatul:

Rezultatul nu este foarte estetic, deoarece butonul ocupă întreaga fereastră, dar nu ar trebui să fim descurajați, în secțiunea următoare vom vedea cum să controlăm acest lucru pentru a genera un rezultat mai plăcut ochiului.
Etichete și poziții
În secțiunea anterioară ne-am dat seama că, deși este foarte ușor să adăugăm mai multe elemente, trebuie să le putem distribui astfel încât la nivel grafic să fie coerent cu ceea ce dorim să realizăm, pentru aceasta putem stabili etichete, dimensiuni și poziții pentru elementele din fereastră.
Vom vedea următorul cod cu rezultatul corespunzător, astfel încât să putem analiza și înțelege procesul într-un mod mai bun.
 import wx app = wx.App () win = wx.Frame (None,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show ( ) app.MainLoop () 

După cum putem vedea, plasăm o valoare în titlul ferestrei, ca argument pentru constructor atunci când instanțiem, apoi creăm două butoane și fiecare adăugăm o etichetă sau o etichetă, putem vedea rezultatul, deși este posibil să nu fii ceea ce așteptăm:

Într-adevăr, putem vedea că ceva nu arată bine și că unul dintre butoane nu este vizibil, acest lucru se datorează faptului că nu specificăm poziția sa, prin urmare este ascuns sub celălalt buton.
Vom corecta acest lucru cu următorul cod:
 import wx app = wx.App () win = wx.Frame (None ,, size = (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), mărime = (210, 25)) conținut = wx.TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) .MainLoop () 

Cu acest cod, în afară de corectarea detaliilor cu pozițiile butoanelor, profităm și adăugăm câteva controale de text, să vedem în imaginea următoare cum ar arăta totul.

Lucrurile sunt deja într-o formă mai bună, cu toate acestea, acum ne întrebăm ce vom face cu această fereastră, deoarece în secțiunea următoare vom defini câteva funcționalități.
Tratarea evenimentelor
Folosind acest tip de abordare pentru a ne crea programele, viziunea a ceea ce facem se schimbă puțin, în acest caz și acțiunile pe care programul le execută le vom numi evenimente, aceste evenimente sunt declanșate de acțiuni ale utilizatorului, cum ar fi clic pe un buton, așa că am modificat puțin codul pentru a include aceste evenimente:
loadButton.Bind (wx.EVT_BUTTON, încărcare)

Această linie ne face o uniune între funcția de încărcare și element, în acest caz un buton, așa că știm deja că trebuie mai întâi să definim o funcție și apoi să o atribuim într-un eveniment legat de un element.
Să vedem codul final:
 import wx def load (event): 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 (None ,, size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, încărcare) saveButton = wx.Button (bkg, label = 'Save') saveButton.Bind (wx.EVT_BUTTON, save) fișier nume = wx.TextCtrl (bkg) contents = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (nume de fișier, proporție = 1, flag = wx.EXPAND) hbox.Add (loadButton, proportion = 0, flag = wx.LEFT, border = 5) hbox.Add (saveButton, proportion = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proporție = 0, flag = wx.EXPAND | wx.ALL, border = 5) vbox.Add (conținut, proporție = 1, flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Ce face acest program este să editeze fișiere text într-un mod destul de simplu, cu toate acestea ne-a făcut să folosim multe funcții și aplicații.
Cu aceasta terminăm tutorialul, știind cum să folosim un set de instrumente interfața cu utilizatorul, vă încurajăm să investigați diferitele seturi de instrumente existente, inclusiv cele care sunt exclusive unui anumit sistem de operare, amintindu-ne că fiecare instrument ne va fi util uneori.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave