Python - lietotāja saskarnes, 2. daļa

Satura rādītājs
Kā redzējām apmācības pirmajā daļā, loga izveide ir pavisam vienkārša, šajā otrajā daļā mēs dosimies nedaudz tālāk, iedziļinoties tajā, ko atstājām kā pamatu, un paplašinot kodu, lai izveidotu kaut ko ar augstāka sarežģītības pakāpe.
Pievienot pogu
Kad mēs atstājam logu, tajā jābūt vairāk elementiem, un viena no visvienkāršākajām, bet ļoti svarīgajām ir poga, lai to pievienotu, mēs pievienosim btn = wx. Poga (uzvarēt) mūsu kodā, redzēsim:
 importēt wx app = wx.App () win = wx.Frame (nav) btn = wx.Button (win) win.Show () app.MainLoop () 

Kā redzam, tas ir praktiski tāds pats kods kā iepriekš, tomēr mēs iekļaujam instrukciju, kas pievieno pogu, attēlā mēs varam redzēt rezultātu:

Rezultāts nav īpaši estētisks, jo poga aizņem visu logu, taču mums nevajadzētu atturēties, nākamajā sadaļā mēs redzēsim, kā to kontrolēt, lai radītu acīm patīkamāku rezultātu.
Etiķetes un pozīcijas
Iepriekšējā sadaļā mēs sapratām, ka, lai gan ir ļoti viegli pievienot vairāk elementu, mums ir jāspēj tos izplatīt tā, lai grafiskā līmenī tas atbilstu tam, ko mēs vēlamies sasniegt, tāpēc mēs varam noteikt etiķetes, izmērus un pozīcijas loga elementiem.
Mēs redzēsim šo kodu ar atbilstošo rezultātu, lai mēs varētu labāk analizēt un izprast procesu.
 importēt wx app = wx.App () win = wx.Frame (nav,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show ( ) lietotne. MainLoop () 

Kā redzam, mēs ievietojam vērtību loga nosaukumā, kā argumentu konstruktoram, kad tiek izveidots paraugs, pēc tam izveidojam divas pogas un katru pievienojam etiķeti vai etiķeti, mēs varam redzēt rezultātu, lai gan tas var nebūt esi tas, ko mēs sagaidām:

Patiešām, mēs redzam, ka kaut kas neliekas kārtībā un viena no pogām nav redzama, jo mēs nenorādām tās pozīciju, tāpēc tā ir paslēpta zem otras pogas.
Mēs to labosim, izmantojot šādu kodu:
 importēt wx app = wx.App () win = wx.Frame (Nav ,, size = (410, 335)) win.Rādīt () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), izmērs = (80, 25)) saveButton = wx. Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), izmērs = (210, 25)) saturs = wx. TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) lietotne .MainLoop () 

Izmantojot šo kodu, izņemot detaļu labošanu ar pogu pozīcijām, mēs izmantojam un pievienojam dažas teksta vadīklas. Tālāk redzamajā attēlā redzēsim, kā viss izskatītos.

Lietas jau ir labākā stāvoklī, tomēr tagad mēs sev jautājam, ko mēs darīsim ar šo logu, jo nākamajā sadaļā mēs definēsim dažas funkcijas.
Notikumu apstrāde
Izmantojot šāda veida pieeju, lai izveidotu mūsu programmas, nedaudz mainās arī redzējums par to, ko mēs darām, un šajā gadījumā un darbības, kuras programma veic, mēs sauksim par notikumiem, šos notikumus izraisa lietotāju darbības, piemēram, noklikšķināšana uz pogas, tāpēc mēs esam nedaudz mainījuši kodu, lai iekļautu šādus notikumus:
loadButton.Bind (xxEVT_BUTTON, ielādēt)

Šī līnija padara mūs par savienību starp slodzes funkciju un elementu, šajā gadījumā pogu, tāpēc mēs jau zinām, ka vispirms ir jādefinē funkcija un pēc tam jāpiešķir tā ar elementu saistītā notikumā.
Apskatīsim galīgo kodu:
 importēt wx def slodze (notikums): fails = atvērts (faila nosaukums.GetValue ()) saturs. SetValue (fails.lasījums ()) file.close () def saglabāt (notikums): fails = atvērts (faila nosaukums.GetValue (), ' w ') file.write (content.GetValue ()) file.close () app = wx.App () win = wx.Frame (Nav ,, size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, ielādēt) saveButton = wx.Button (bkg, label = 'Save') wx.TextCtrl (bkg) content = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (faila nosaukums, proporcija = 1, karogs = wx.EXPAND) hbox.Add (loadButton, proporcija = 0, karogs = wx.LEFT, robeža = 5) hbox.Add (saveButton, proporcija = 0, karogs = wx.LEFT, robeža = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proporcija = 0, karogs = wx.EXPAND | wx.ALL, robeža = 5) vbox.Add (saturs, proporcija = 1, karogs = wx. EXPAND | wx.LEFT | platums x APAKŠ | wx.RIGHT, robeža = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Šī programma veic teksta failu rediģēšanu diezgan vienkāršā veidā, tomēr tā lika mums izmantot daudzas funkcijas un lietojumprogrammas.
Ar to mēs pabeidzam apmācību, zinot, kā lietot a instrumentu komplekts lietotāja interfeisu, mēs iesakām izpētīt dažādus esošos rīku komplektus, tostarp tos, kas ir ekskluzīvi konkrētai operētājsistēmai, atceroties, ka katrs rīks mums reizēm būs noderīgs.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave