Python - Användargränssnitt, del 2

Innehållsförteckning
Som vi kunde se i den första delen av självstudien är det ganska enkelt att skapa ett fönster, i den andra delen kommer vi att gå lite längre genom att gå djupare in i vad vi lämnade som bas och expandera koden för att skapa något med en högre grad av komplexitet.
Lägg till en knapp
När vi lämnar fönstret måste det finnas fler element i det och en av de mest grundläggande men mycket viktiga är knappen, för att lägga till det ska vi lägga till btn = wx.Knapp (vinst) i vår kod, låt oss se:
 import wx app = wx.App () win = wx.Frame (None) btn = wx.Button (win) win.Show () app.MainLoop () 

Som vi kan se är det praktiskt taget samma kod som ovan, men vi inkluderar instruktionen som lägger till knappen, i bilden kan vi se resultatet:

Resultatet är inte särskilt estetiskt eftersom knappen upptar hela fönstret, men vi bör inte bli avskräckta, i nästa avsnitt kommer vi att se hur man kontrollerar detta för att skapa ett mer tilltalande resultat för ögat.
Etiketter och positioner
I föregående avsnitt insåg vi att även om det är mycket enkelt att lägga till fler element, måste vi kunna distribuera dem så att det på den grafiska nivån är i överensstämmelse med vad vi vill uppnå, för detta kan vi etablera etiketter, storlekar och positioner för elementen i fönstret.
Vi kommer att se följande kod med motsvarande resultat så att vi kan analysera och förstå processen på ett bättre sätt.
 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 () 

Som vi kan se lägger vi ett värde i fönstertiteln, som ett argument för konstruktören vid instans, sedan skapar vi två knappar och var och en lägger vi till en etikett eller etikett, vi kan se resultatet, även om det kanske inte vara vad vi förväntar oss:

Vi kan verkligen se att något inte ser rätt ut och att en av knapparna inte är synlig, det beror på att vi inte specificerar dess position, därför är det dolt under den andra knappen.
Vi kommer att korrigera detta med följande kod:
 import wx app = wx.App () win = wx.Frame (None ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), storlek = (80, 25)) saveButton = wx.Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filnamn = wx.TextCtrl (win, pos = (5, 5), storlek = (210, 25)) innehåll = wx.TextCtrl (vinst, pos = (5, 35), storlek = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) app .MainLoop () 

Med den här koden, förutom att korrigera detaljerna med knapparnas positioner, drar vi nytta av och lägger till några textkontroller, låt oss se i följande bild hur allt skulle se ut.

Saker är redan i bättre form, men nu frågar vi oss själva, vad ska vi göra med det här fönstret, för i nästa avsnitt kommer vi att definiera några funktioner.
Eventhantering
Genom att använda denna typ av tillvägagångssätt för att skapa våra program, förändras visionen om vad vi gör också lite, i det här fallet och de åtgärder som programmet utför kommer vi att kalla händelser, dessa händelser utlöses av användaråtgärder som att klicka på en knapp, så vi har ändrat koden lite för att inkludera dessa händelser:
loadButton.Bind (bx.EVT_BUTTON, load)

Den raden gör oss till en förening mellan lastfunktionen och elementet, i det här fallet en knapp, så vi vet redan att vi först måste definiera en funktion och sedan tilldela den i en händelse som är länkad till ett element.
Låt oss se den slutliga koden:
 import wx def load (event): file = open (filename.GetValue ()) content.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 (None ,, size = (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, spara) filnamn = wx.TextCtrl (bkg) innehåll = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (filnamn, proportion = 1, flagga = 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, flagga = wx.EXPAND | wx.ALL, kant = 5) vbox.Add (innehåll, proportion = 1, flagga = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, kant = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Vad detta program gör är att redigera textfiler på ett ganska grundläggande sätt, men det fick oss att använda många funktioner och applikationer.
Med detta avslutar vi handledningen, med kunskap om hur man använder en verktygslåda användargränssnitt, uppmuntrar vi dig att undersöka de olika befintliga verktygssatserna, inklusive de som är exklusiva för ett visst operativsystem, kom ihåg att varje verktyg kommer att vara användbart för oss ibland.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave