Python - brugergrænseflader, del 2

Indholdsfortegnelse
Som vi kunne se i den første del af selvstudiet, er det ganske enkelt at oprette et vindue, i denne anden del vil vi gå lidt længere ved at gå dybere ind i det, vi efterlod som en base og udvide koden for at skabe noget med en højere grad af kompleksitet.
Tilføj en knap
Når vi forlader vinduet, skal der være flere elementer i det, og en af ​​de mest grundlæggende, men meget vigtige er knappen, for at tilføje det skal vi tilføje btn = wx.Knap (vind) i vores kode, lad os se:
 import wx app = wx.App () win = wx.Frame (None) btn = wx.Button (win) win.Show () app.MainLoop () 

Som vi kan se, er det praktisk talt den samme kode som ovenfor, men vi inkluderer instruktionen, der tilføjer knappen, i billedet kan vi se resultatet:

Resultatet er ikke særlig æstetisk, da knappen fylder hele vinduet, men vi bør ikke frarådes, i det næste afsnit vil vi se, hvordan vi styrer dette for at skabe et mere behageligt resultat for øjet.
Etiketter og positioner
I det foregående afsnit indså vi, at selvom det er meget let at tilføje flere elementer, skal vi være i stand til at distribuere dem, så det på det grafiske niveau er i overensstemmelse med det, vi ønsker at opnå, for dette kan vi etablere etiketter, størrelser og positioner for elementerne i vinduet.
Vi kommer til at se følgende kode med det tilsvarende resultat, så vi kan analysere og forstå processen på en bedre måde.
 import wx app = wx.App () win = wx.Frame (None,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show (Vis ( ) app.MainLoop () 

Som vi kan se, placerer vi en værdi i titlen på vinduet, som et argument for konstruktøren ved instantiating, så opretter vi to knapper og hver tilføjer vi en label eller label, vi kan se resultatet, selvom det måske ikke være hvad vi forventer:

Vi kan faktisk se, at noget ikke ser rigtigt ud, og at en af ​​knapperne ikke er synlig, det er fordi vi ikke angiver dens position, derfor er det skjult under den anden knap.
Vi vil rette dette med følgende kode:
 import wx app = wx.App () win = wx.Frame (Ingen ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), størrelse = (80, 25)) saveButton = wx.Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), størrelse = (210, 25)) indhold = wx.TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) app .MainLoop () 

Med denne kode, udover at korrigere detaljerne med knappernes positioner, drager vi fordel af og tilføjer nogle tekstkontroller, lad os se i det følgende billede, hvordan alt ville se ud.

Tingene er allerede i bedre form, men nu spørger vi os selv, hvad skal vi gøre med dette vindue, for i det næste afsnit vil vi definere nogle funktionaliteter.
Eventhåndtering
Ved hjælp af denne type tilgang til at oprette vores programmer, ændrer visionen om, hvad vi gør, også en smule, i dette tilfælde og de handlinger, som programmet udfører, vil vi kalde begivenheder, disse begivenheder udløses af brugerhandlinger såsom at klikke på en knap, så vi har ændret koden lidt for at inkludere disse begivenheder:
loadButton.Bind (wx.EVT_BUTTON, load)

Denne linje gør os til en forening mellem belastningsfunktionen og elementet, i dette tilfælde en knap, så vi ved allerede, at vi først skal definere en funktion og derefter tildele den i en begivenhed, der er knyttet til et element.
Lad os se den sidste kode:
 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 (content.GetValue ()) file.close () app = wx.App () win = wx.Frame (Ingen ,, størrelse = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Save') saveButton.Bind (wx.EVT_BUTTON, gem) filnavn = wx.TextCtrl (bkg) indhold = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (filnavn, proportion = 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, proportion = 0, flag = wx.EXPAND | wx.ALL, border = 5) vbox.Add (indhold, proportion = 1, flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, kant = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Hvad dette program gør, er at redigere tekstfiler på en ret grundlæggende måde, men det fik os til at bruge mange funktioner og applikationer.
Med dette afslutter vi selvstudiet og ved, hvordan man bruger en værktøjskasse brugergrænseflade, opfordrer vi dig til at undersøge de forskellige eksisterende værktøjssæt, herunder dem, der er eksklusive for et bestemt operativsystem, og husk at hvert værktøj lejlighedsvis vil være nyttigt for os.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave