Programų kūrimas naudojant „Python“ ir „wxFormBuilder“

Turinys

„Python“ programavimo kalba leidžia priimti įvairias bibliotekas ir sistemas grafinėms sąsajoms kurti. Kai kurie yra „Tinker“, „Wxwidget“ ir „QT“, platforma, kurioje matėme vadovėlius:

  • Kelių platformų programos su „Python“, „PyQT“ ir „QT Desginer 5“
  • Programos su „Sqlite“ duomenų baze, „PyQT“ ir „QT Desginer“.

Šioje pamokoje pamatysime kaip sukurti grafines sąsajas su „WxWidget“ ir „wxFormBuilder“ dizaino įrankiu. „wxFormBuilder“ yra grafinių vartotojo sąsajų kūrimo programa, ji yra nemokama ir atviras šaltinis leidžia naudotis „wxWidgets“ bibliotekomis, ji plačiai naudojama kuriant daugiaplatformes programas.

„wxFormBuilder“ yra vizualinio kūrimo įrankis. Didelis privalumas yra tai, kad jis gali kurti kodą „C ++“, „Python“, PHP, „Lua“ ir „XRC“. Jis veikia „Windows“, „Linux“ ir „Mac Os“.

Šioje pamokoje mes įdiegsime „Linux“ ir virtualioje mašinoje su „VirtualBox“ ir „Windows 7“, kad įrodytume, jog galime sukurti daugiaplatformę programą taip, kaip galėtume įdiegti „Linux“ ir turėti virtualią mašiną su „Linux“.

Mums reikės įdiegti šiuos įrankius:

PythonTai aukšto lygio programavimo kalba, pagrindinis „python“ tikslas yra palengvinti kodo įskaitomumą ir leidžia programuotojams kurti programas mažiau kodo eilučių, palyginti su programavimo kalbomis, tokiomis kaip C ++, C # ar „Java“.

Vienas iš „Python“ pranašumų yra tas, kad jis palaiko kelias programavimo paradigmas, tokias kaip orientuotas į objektą, imperatyvus ir funkcinis ar procedūrinis programavimas. Python galime atsisiųsti iš oficialios svetainės.

„wxPython“Jis yra kelių platformų, jis gali veikti „Windows“, „Linux“ ir „Mac OS“ be pakeitimų. Sąsajos dizaino rezultatas yra natūrali programos išvaizda, atsižvelgiant į operacinę sistemą, kurioje ji veikia.

Tai bibliotekų rinkinys, leidžiantis perkelti ir naudoti „wxWidgets“ grafinę biblioteką naudojant „Python“ programavimo kalbą. „WxWidgets“ bibliotekai būdinga tai, kad ji yra kelių platformų.

Jį galima atsisiųsti iš oficialios „WxPython“ svetainės, „Linux“ jis yra saugyklose arba gali būti pridėtas

wxFormBuilderTai nemokama, kelių platformų ir atvirojo kodo IDE. Jis naudojamas kuriant grafines sąsajas GUI „wxWidgets“ arba šiuo atveju „wxPython“, tai leidžia kurti kelių platformų programas. Kaip ir „Qt Designer“, „wxFormBuilder“ įrankis naudojamas vizualiam tobulėjimui.

„wxFormbuilder“ leidžia generuoti kodą C ++, Python, PHP, Lua ir XRC kodais. Kodas sukuriamas taip, kaip mes projektuojame.

Galime atsisiųsti iš oficialios svetainės, turime įdiegti aukštesnę nei 3.4 versiją, kuri palaiko visas aukščiau paminėtas kalbas.

Programų pavyzdžiai naudojant „wxPython“ ir „wxFormBuilder“
Šioje pamokoje mes kursime programą „Linux“, o tada taip pat paleisime ją „Windows“. „Linux“ sistemoje „python“ jau yra įdiegtas, todėl įdiegsime „wxPython“ ir „wxFormbuilder“, iš terminalo lango rašome šią komandą:

 sudo add-apt-repository -y ppa: wxformbuilder / wxwidgets sudo apt-get update sudo apt-get install libwxgtk3.0-0 libwxgtk-media3.0-0 sudo add-apt-repository -y ppa: wxformbuilder / release sudo apt -atnaujinkite sudo apt-get install wxformbuilder
Tada turime pridėti „wxpython“ kaip aplinkos kintamąjį, kad galėtume jį naudoti iš bet kurio katalogo:
 eksportuoti PYTHONPATH = "$ PYTHONPATH": / usr / lib / python2.7 / dist-package / wx-2.8-gtk2-unicode /
Tada pagrindiniame meniu atidarome „wxFormbuilder“:

„wxFormBuilder“ pristato darbalaukį su kairiuoju stulpeliu, kuriame bus mūsų naudojamas projektas ar ekranas ir komponentai, centre - dizaino skirtukas ir kiekvienos kalbos skirtukas, dešinėje turėsime ir projekto, ir komponentus, kuriuos naudojame.

Pirmas dalykas, kurį turėsime sukonfigūruoti, bus projektas, tam mes spustelėsime projekto pavadinimą ir tada eisime į ypatybes, kuriose priskirsime pavadinimą ir kalbą, kurią naudosime.

Tada einame į skirtuką Forma ir pridedame formą, kuri bus ekrano sudėtinė dalis.

Tada iš savybių galime pakeisti formos, kuriai priskiriame „MyForm“, pavadinimą ir pavadinimą, kuris bus 01 pavyzdys- pamokaBe to, galime keisti daugybę parinkčių, tokių kaip fono spalva, dydis, lango tipas ir daug daugiau.

Galime pereiti į skirtuką „Python“ ir pamatyti, kaip kuriamas kodas.

Norėdami sugeneruoti kodą faile, pirmiausia turime išsaugoti projektą iš meniu Failas> Išsaugoti kaip, ir išsaugome jį kaip example01.fbp

Toliau einame į meniu parinktį Failas> Generuoti kodą, tada einame į katalogą, kuriame išsaugome projekto failą, ir pamatysime failą noname.py

Šiame noname.py faile yra „Python“ kodas, sukurtas naudojant sąsajos dizainą, mes galime pervardyti failą į example01.py

Toliau turime pridėti kodą, kad šis dizainas būtų rodomas, kai programa vykdoma. Norėdami tai padaryti, atidarome failą ir pridedame šį kodą, toliau:

 importuoti wx importuoti wx.xrc klasę MyForm (wx.Frame): def __init __ (self, parent): wx.Frame .__ init__ (self, parent, id = wx.ID_ANY, title = u "Example01 - Tutorial", pos = wx .DefaultPosition, size = wx.Size (500 300), style = wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHintsSz (wx.DefaultSize, wx.DefaultSize) self.Centre (wx.BOTH) def __ : Perduokite # Formos pabaigos dizaino kodą ## Kodas, rodantis programą vykdant programą = wx. Programos (klaidinga) kadras = „MyForm“ (nėra) rėmelis. Rodyti (tiesa) programą. „MainLoop“ ()
Tada iš terminalo lango einame į programų katalogą ir vykdome „python example01.py“

Toliau einame į „wxFormbuilder“ ir pradedame kurti ekraną. Komponentai yra paskirstomi ekrane naudojant maketą ir tinklelius, šiuo atveju mes pasirinksime vertikalią „wxBoxSizer“, tai yra padalinti ekraną į tris eilutes, kur pridėsime komponentus.

Toliau pridėsime meniu, tam einame į meniu / įrankių juostos skirtuką, pirmiausia pridėsime meniu juostos komponentą, kuris bus pagrindinis meniu. Tada mes hierarchiškai pridėsime atidarytą meniu, skyriklį ir kitą meniu elementą pavadinimu „Išeiti“.

Matome, kad objektai yra išdėstyti pagal hierarchiją, kurioje aukščiausia apima žemiausią, mes galime pasikeisti jų padėtimi tiesiog vilkdami. Tada mes eisime į skirtuką Duomenys ir pridėsime a „wxGrid“ valdymas Norėdami parodyti duomenų tinklelį, mes juos įtraukiame į maketą, todėl kitas valdiklis bus po meniu.

Mes sugeneruojame naują kodą ir failas bus pakeistas noname.py, galime pervardyti kaip example02.py, pridėdami atliktus pakeitimus. Tada paleidžiame iš terminalo lango naudodami komandą:

 python example02.py

Dabar mes ketiname wxFormbuilder ir mes pridėsime atskyrimo juostą žemiau tinklelio, nuo Bendras skirtukas ir pasirinkite komponentą wxStaticLine.

Toliau sukursime laukus, kad padarytume detalių valdytoją, tam mes įsitrauksime į maketą ir pridėsime komponentą.

Be grafinių sąsajų kūrimo, galime pridėti įvykių, pavyzdžiui, spustelėję įrašymo mygtuką ir einame į skirtuką Įvykiai, ieškome įvykio tipo, šiuo atveju „OnLeftDown“, spustelėkite kairįjį pelės mygtuką.

Šiuo atveju mes parašome funkcijos, kuri iškvies įvykį, pavadinimą, o kai sugeneruosime kodą, jis sukurs funkciją tik mums, tada turėsime parašyti kodą su funkcionalumu. Sukūrę failą, pabaigoje pridėsime šį pilną kodą:

 importuoti wx importuoti wx.xrc importuoti wx.grid ##################################### ################# ############################################# ############### MyForm (wx.Frame): def __init __ (self, parent): wx.Frame .__ init__ (self, parent, id = wx.ID_ANY, title = wx. EmptyString, pos = wx.DefaultPosition, size = wx.Size (417 350), style = wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHintsSz (wx.DefaultSize, wx.DefaultSize) bSALVER1 = bSALVER1 m_grid1 = wx.grid.Grid (self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0) # Grid self.m_grid1.CreateGrid (4, 4) self.m_grid1.EnableEditing (True) self.m_grid1.EnableGridLines ( Tiesa) self.m_grid1.EnableDragGridSize (False) self.m_grid1.SetMargins (0, 0) # Stulpeliai self.m_grid1.EnableDragColMove (False) self.m_grid1.EnableDragColSize (True) self.m_grid1.SetColLabelMize (True) self.m_grid1.SetColLabelMize (True) self.m_grid SetColLabel.mSize (.SetColLabelAlignment (wx.ALIGN_CENTRE, x x ALIGN_CENTRE) # Eilutės self.m_grid1.EnableDragRowSize (True) self.m_grid1.SetRowLabelSize (80) self.m_grid1.SetRowLabelAlignment (wx.ALIGN_CENTRE, wx.ALIGN_CENTRE) # Etiketės išvaizda .SetLignment_OPELL, w / w Defaults w / wm_grid1.SetLIGNDefaultCell_FT) bSizer1.Add (self.m_grid1, 0, wx.ALL, 5) self.m_staticline4 = wx.StaticLine (self, wx.ID_ANY, wx.DefaultDfault, wx , wx.LI_HORIZONTAL) bSizer1.Add (self.m_staticline4, 0, wx.EXPAND | wx.ALL, 5) fgSizer1 = wx.FlexGridSizer (0, 4, 0, 0) fgSizer1.SetFlexibleDirection (wx.BOTH) fgSode1.Set (wx.FLEX_GROWMODE1_SPECIFIED) selfText.SelfText. (self, wx.ID_ANY, u „Product“, wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText1.Wrap (-1) fgSizer1.Add (self.m_staticT, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_textCtrl1 = wx.TextCtrl (self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) fgSizer1.Add (self.m_textCtrx., ALL | wx.EXPAND, 5) self .m_staticText2 = w x.StaticText (self, wx.ID_ANY, u "Code", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText2.Wrap (-1) fgSizer1.Add (self.m_staticText2, 0, wx.ALL | wx. ALIGN_CENTER_VERTICAL, 5) self.m_textCtrl2 = wx.TextCtrl (self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) fgSizer1.Add (self.m_textCtrl2, 1, wx.EXP | wx.ALLPAND | wx.ALIGN_BOTTOM, 5) self.m_staticText3 = wx.StaticText (self, wx.ID_ANY, u "Category", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText3.Wrap (-1) fgSizer1. Pridėti (self. M_staticText3, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) m_comboBox1Choices = [] self.m_comboBox1 = wx.ComboBox (self, wx.ID_ANY, u "Pasirinkti", wx.DefaultPosition, wx1De ) .Add (self.m_comboBox1, 0, wx.ALL, 5) self.m_staticText4 = wx.StaticText (self, wx.ID_ANY, u "Įėjimo data", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText4 . Apvyniojimas (-1) fgSizer1.Add (self.m_staticText4, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTE R_VERTICAL, 5) self.m_datePicker1 = wx.DatePickerCtrl (self, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT) fgSizer1.Add (self.m_date.wx1. EXPAND, 5) bSizer1.Add (fgSizer1, 1, wx.EXPAND | wx.ALL, 5) self.m_staticline3 = wx.StaticLine (self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) bSizer1. Pridėti (self.m_staticline3, 0, wx.EXPAND | wx.ALL, 5) bSizer2 = wx.BoxSizer (wx.HORIZONTAL) bSizer2.AddSpacer ((0, 0), 1, wx.EXPAND, 5) self.m_button4 = wx.Button (self, wx.ID_ANY, u "Burn", wx.DefaultPosition, wx.DefaultSize, 0) bSizer2.Add (self.m_button4, 0, wx.ALL, 5) self.m_button5 = wx.Button (self , wx.ID_ANY, u „Ištrinti“, wx.DefaultPosition, wx.DefaultSize, 0) bSizer2.Add (self.m_button5, 0, wx.ALL, 5) bSizer1.Add (bSizer2, 1, wx.EXPAND | wx. VISI, 5) self.SetSizer (bSizer1) self.Layout () self.m_menubar1 = wx.MenuBar (0) self.m_menu1 = wx.Menu () self.m_menuItem1 = wx.MenuItem (self.m_menu1, wx.ID_ANY, u „Atviras“, wx .EmptyString, x Tuščias .ITEM_NORMAL) self.m_menu1.AppendItem (self.m_menuItem3) self.m_menubar1.Append (self.m_menu1 arba „Files“) self.SetMenuBar (self.m_menubar1) self.Centre (wx.BOTH) # spustelėkite įvykį, iškviečiantį Funkcijų įrašas self.m_button4.Bind (wx.EVT_LEFT_DOWN, self.Record) def __del __ (self): pass # sukurkite pasirinktinį pranešimą arba dialogo langą def Message (self, msg, title, style): dlg = wx.MessageDialog ( parent = Nėra, message = msg, caption = title, style = style) dlg.ShowModal () dlg.Destroy () # Įrašo funkcija, reaguojanti į įvykį, spustelėkite def Įrašas (aš, įvykis): self.Message ("Tai yra a click! event "," Information - Tutorial ", wx.OK | wx.ICON_INFORMATION) app = wx.App (False) frame = MyForm (None) frame.Show (True) app.MainLoop () 

Toliau mes išbandysime tą pačią programą „Windows 7“ diegime su anksčiau įdiegtais „Python“ ir „wxpython“, o rezultatas yra toks:

Kai baigsime visą kūrimą, programą galima platinti naudojant tokią programinę įrangą kaip „InnoSetup“, kaip matėme vadovėliuose:

  • Sukurkite montuotojus naudodami „Inno Setup“
  • Individualus montuotojas, platinantis mūsų programinę įrangą.

„wxFormBuilder“ yra vaizdinė aplinka, leidžianti mums sukurti „Python“ kodą naudojant „wxPython“ platformąKita „Python“ grafinių sąsajų kūrimo alternatyva bus vartotojo pasirinkimas, ar naudoti „PyQt“, ar „wxPython“.

Vienas iš didžiausių „wxFormBuilder“ privalumų yra tas, kad jame yra daug komponentų ir valdiklių, kuriuos galima pritaikyti dar labiau nei kitose populiaresnėse aplinkose. Kurdami programas galime matyti rezultatus, todėl galime turėti skirtingas grafinės sąsajos versijas ir pridėtą kodą. Skirtingai nuo „Qt Designer“, „wxFormBuilder“ leidžia generuoti įvykius ir tada panaudoti tam tikras funkcijas.
.

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave