Python - brukergrensesnitt, del 2

Innholdsfortegnelse
Som vi kunne se i den første delen av opplæringen, er det ganske enkelt å lage et vindu, i denne andre delen skal vi gå litt lenger ved å gå dypere inn i det vi forlot som base og utvide koden for å lage noe med en høyere grad av kompleksitet.
Legg til en knapp
Når vi forlater vinduet, må det være flere elementer i det, og en av de mest grunnleggende, men veldig viktige er knappen, for å legge den til skal vi legge til btn = wx.Knapp (seier) i vår kode, la oss 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 koden som ovenfor, men vi inkluderer instruksjonene som legger til knappen, i bildet kan vi se resultatet:

Resultatet er ikke veldig estetisk siden knappen opptar hele vinduet, men vi bør ikke bli motløse. I neste avsnitt vil vi se hvordan vi kan kontrollere dette for å generere et mer behagelig resultat for øyet.
Etiketter og posisjoner
I forrige seksjon innså vi at selv om det er veldig enkelt å legge til flere elementer, må vi kunne distribuere dem slik at det på grafisk nivå er i samsvar med det vi ønsker å oppnå, for dette kan vi etablere etiketter, størrelser og posisjoner for elementene i vinduet.
Vi kommer til å se følgende kode med tilhørende resultat, slik at vi kan analysere og forstå prosessen på en bedre måte.
 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, plasserer vi en verdi i tittelen på vinduet, som et argument for konstruktøren ved instantiating, så lager vi to knapper og hver legger vi til en etikett eller etikett, vi kan se resultatet, selv om det kanskje ikke er det være det vi forventer:

Vi kan faktisk se at noe ikke ser riktig ut og at en av knappene ikke er synlig, dette er fordi vi ikke spesifiserer posisjonen, derfor er den skjult under den andre knappen.
Vi skal rette opp dette med følgende kode:
 import wx app = wx.App () win = wx.Frame (None ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), størrelse = (80, 25)) saveButton = wx.Button (vinn, etikett = 'Lagre', pos = (315, 5), størrelse = (80, 25)) filnavn = wx.TextCtrl (vinn, pos = (5, 5), størrelse = (210, 25)) innhold = wx.TextCtrl (vinn, pos = (5, 35), størrelse = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) app .MainLoop () 

Med denne koden, bortsett fra å korrigere detaljene med posisjonene til knappene, drar vi fordel av og legger til noen tekstkontroller, la oss se på bildet nedenfor hvordan alt ville se ut.

Ting er allerede i bedre form, men nå spør vi oss selv hva vi skal gjøre med dette vinduet, for i neste avsnitt skal vi definere noen funksjoner.
Arrangementshåndtering
Ved å bruke denne typen tilnærminger for å lage programmene våre, endres visjonen om hva vi gjør også litt, i dette tilfellet og handlingene som programmet utfører vil vi kalle hendelser, disse hendelsene utløses av brukerhandlinger som å klikke på en knapp, så vi har endret koden litt for å inkludere disse hendelsene:
loadButton.Bind (bx.EVT_BUTTON, last)

Denne linjen gjør oss til en forening mellom lastefunksjonen og elementet, i dette tilfellet en knapp, så vi vet allerede at vi først må definere en funksjon og deretter tildele den i en hendelse knyttet til et element.
La oss se den endelige koden:
 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 (vinn) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Save') saveButton.Bind (wx.EVT_BUTTON, lagre) filnavn = wx.TextCtrl (bkg) innhold = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (filnavn, proporsjon = 1, flagg = 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, proporsjon = 0, flagg = wx.EXPAND | wx.ALL, kant = 5) vbox.Add (innhold, proporsjon = 1, flagg = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, kant = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Dette programmet gjør er å redigere tekstfiler på en ganske grunnleggende måte, men det fikk oss til å bruke mange funksjoner og applikasjoner.
Med dette fullfører vi opplæringen, og vet hvordan vi bruker en verktøykasse brukergrensesnitt, oppfordrer vi deg til å undersøke de forskjellige eksisterende verktøysettene, inkludert de som er eksklusive for et bestemt operativsystem, og husk at hvert verktøy noen ganger vil være nyttig for oss.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave