Lietojumprogrammu izstrāde, izmantojot Python un wxFormBuilder

Satura rādītājs

Programmēšanas valoda Python ļauj pieņemt dažādas bibliotēkas un ietvarus, lai izstrādātu grafiskās saskarnes. Daži no tiem ir Tinker, Wxwidget un QT, platforma, kurā mēs redzējām apmācības:

  • Vairāku platformu lietojumprogrammas ar Python, PyQT un QT Desginer 5
  • Lietojumprogrammas ar Sqlite datu bāzi, PyQT un QT Desginer.

Šajā apmācībā mēs redzēsim kā izstrādāt grafiskas saskarnes ar WxWidget un wxFormBuilder dizaina rīku. wxFormBuilder ir lietojumprogramma grafisko lietotāja saskarņu projektēšanai, tā ir bezmaksas un atvērtā koda ļauj izmantot wxWidgets bibliotēkas, to plaši izmanto daudzplatformu lietojumprogrammu izstrādei.

wxFormBuilder ir vizuālās attīstības rīks. Liela priekšrocība ir tā, ka tā izstrādes laikā tā var ģenerēt kodu C ++, Python, PHP, Lua un XRC formātos. Tas darbojas operētājsistēmās Windows, Linux un Mac Os.

Šajā apmācībā mēs veiksim instalēšanu Linux un virtuālajā mašīnā ar VirtualBox un Windows 7, lai pierādītu, ka varam izstrādāt daudzplatformu lietojumprogrammu tādā pašā veidā, kā mēs varētu instalēt Linux un izveidot virtuālo mašīnu ar Linux.

Mums būs jāinstalē šādi rīki:

PythonTā ir augsta līmeņa programmēšanas valoda, python galvenais mērķis ir atvieglot koda lasāmību un ļauj programmētājiem izstrādāt lietojumprogrammas mazākās koda rindās, salīdzinot ar tādām programmēšanas valodām kā C ++, C # vai Java.

Viena no Python priekšrocībām ir tā, ka tā atbalsta vairākas programmēšanas paradigmas, piemēram, uz objektu orientētu, obligātu un funkcionālu vai procesuālu programmēšanu. Mēs varam lejupielādēt Python no oficiālās vietnes.

wxPythonTas ir vairāku platformu, tas var darboties operētājsistēmās Windows, Linux un Mac OS bez izmaiņām. Saskarnes dizaina rezultāts ir lietojumprogrammas sākotnējais izskats atkarībā no operētājsistēmas, kurā tā darbojas.

Tas ir bibliotēku kopums, kas ļauj pārnest un izmantot grafisko bibliotēku wxWidgets, izmantojot Python programmēšanas valodu. WxWidgets bibliotēku raksturo vairāku platformu izmantošana.

To var lejupielādēt no oficiālās WxPython vietnes, Linux tas ir pieejams krātuvēs vai to var pievienot

wxFormBuilderTā ir bezmaksas, starpplatformu un atvērtā koda IDE. To izmanto, lai izstrādātu grafiskās saskarnes GUI wxWidgets vai šajā gadījumā wxPython, tas ļauj izveidot starpplatformu lietojumprogrammas. Tāpat kā Qt Designer, rīks wxFormBuilder tiek izmantots vizuālai attīstībai.

wxFormbuilder ļauj ģenerēt kodu C ++, Python, PHP, Lua un XRC kodos. Kods tiek veidots, veidojot dizainu.

Mēs to varam lejupielādēt no tās oficiālās vietnes, mums ir jāinstalē versija, kas ir augstāka par 3.4, kas atbalsta visas iepriekš minētās valodas.

Lietojumprogrammu piemēri ar wxPython un wxFormBuilder
Šajā apmācībā mēs izstrādāsim lietojumprogrammu operētājsistēmā Linux, un pēc tam mēs to darbināsim arī operētājsistēmā Windows. Linux sistēmā python jau ir instalēts, tāpēc mēs instalēsim wxPython un wxFormbuilder, no termināļa loga mēs rakstām šādu komandu:

 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 -atjauniniet sudo apt-get install wxformbuilder
Tad mums jāpievieno wxpython kā vides mainīgais, lai to varētu izmantot no jebkura direktorija:
 eksportēt PYTHONPATH = "$ PYTHONPATH": / usr / lib / python2.7 / dist-package / wx-2.8-gtk2-unicode /
Tālāk galvenajā izvēlnē atveram wxFormbuilder:

wxFormBuilder piedāvā darbvirsmu ar kreiso kolonnu, kurā atradīsies mūsu izmantotais projekts vai ekrāns, un centrā - dizaina cilne un cilne katrai valodai, labajā pusē mums būs gan projekta, gan sastāvdaļas, kuras mēs izmantojam.

Pirmā lieta, kas mums būs jākonfigurē, būs projekts, šim nolūkam mēs noklikšķinām uz projekta nosaukuma un pēc tam dodamies uz rekvizītiem, kur mēs piešķirsim nosaukumu un valodu, kuru izmantosim.

Tālāk mēs ejam uz cilni Veidlapa un pievienojam veidlapu, kas būs ekrāna konteiners.

Tad no rekvizītiem mēs varam mainīt veidlapas nosaukumu, kurai mēs piešķiram MyForm, un nosaukumu, kas būs 01 piemērs- apmācībaTurklāt mēs varam mainīt daudzas iespējas, piemēram, fona krāsu, izmēru, loga veidu un daudz ko citu.

Mēs varam doties uz cilni Python un redzēt, kā tiek ģenerēts kods.

Lai ģenerētu kodu failā, vispirms jāsaglabā projekts no izvēlnes Fails> Saglabāt kā, un mēs to saglabājam kā example01.fbp

Tālāk mēs ejam uz izvēlnes opciju Fails> Ģenerēt kodu, tad mēs ejam uz direktoriju, kurā saglabājam projekta failu, un mēs redzēsim failu noname.py

Šajā failā noname.py ir iekļauts Python kods, kas ģenerēts ar saskarnes dizainu, un mēs varam pārdēvēt failu uz example01.py

Tālāk mums jāpievieno kods, lai šis dizains tiktu parādīts, kad lietojumprogramma tiek izpildīta. Lai to izdarītu, mēs atveram failu un zemāk pievienojam šādu kodu:

 importēt wx importēt wx.xrc klasi 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 __del : Iziet # Veidlapas beigu dizaina kods ## Kods, kas parāda lietojumprogrammu, izpildot lietotni = wx. Lietotne (nepatiess) rāmis = MyForm (nav) rāmis. Rādīt (True) app.MainLoop ()
Pēc tam no termināļa loga mēs ejam uz lietojumprogrammu direktoriju un izpildām python example01.py

Tālāk mēs ejam uz wxFormbuilder un sākam veidot ekrānu. Sastāvdaļas tiek izplatītas ekrānā, izmantojot izkārtojumu un režģus, šajā gadījumā mēs izvēlēsimies vertikālu wxBoxSizer. Tas sadala ekrānu trīs rindās, kur mēs pievienosim komponentus.

Tālāk mēs pievienosim izvēlni, šim nolūkam dodamies uz cilni Izvēlne / Rīkjosla, vispirms pievienosim izvēlnes joslas komponentu, kas būs galvenā izvēlne. Tad mēs hierarhiski pievienosim atvērto izvēlni, atdalītāju un vēl vienu izvēlnes vienumu ar nosaukumu Iziet.

Mēs redzam, ka objekti ir sakārtoti saskaņā ar hierarhiju, kur augstākā ietver zemāko, mēs varam apmainīties ar to pozīciju, vienkārši velkot. Tad mēs ejam uz cilni Dati un mēs pievienosim a wxGrid vadība Lai parādītu datu režģi, mēs viņus ievietojam izkārtojumā, lai nākamā vadīkla atrastos zem izvēlnes.

Mēs ģenerējam jauno kodu, un fails tiks mainīts noname.py, mēs varam to pārdēvēt par example02.py, pievienojot veiktās izmaiņas. Pēc tam mēs palaižam no termināla loga, izmantojot komandu:

 python example02.py

Tagad mēs ejam wxFormbuilder un zem režģa mēs pievienosim atdalītāja joslu no Kopējā cilne un atlasiet komponentu wxStaticLine.

Tālāk mēs izveidosim laukus, lai izveidotu detalizētu informāciju, tāpēc mēs ievietosim izkārtojumu un pievienosim komponentu.

Papildus grafisko saskarņu izstrādei mēs varam pievienot notikumus, piemēram, mēs noklikšķinām uz ierakstīšanas pogas un dodamies uz cilni Notikumi, mēs meklējam notikuma veidu, šajā gadījumā OnLeftDown, noklikšķiniet uz peles kreisās pogas.

Šajā gadījumā mēs ierakstām tās funkcijas nosaukumu, kas izsauks notikumu, ģenerējot kodu, tā tikai izveidos funkciju mums, tad mums būs jāraksta kods ar funkcionalitāti. Kad esam izveidojuši failu, beigās pievienosim šādu pilnu kodu:

 importēt wx importēt wx.xrc importēt wx.grid ####################################### ##################################### MyFrame1 klase ########## ################################################ ############### 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 = wSALVER1 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 ( True) self.m_grid1.EnableDragGridSize (False) self.m_grid1.SetMargins (0, 0) # Slejas self.m_grid1.EnableDragColMove (False) self.m_grid1.EnableDragColSize (True) self.m_grid1.SetColLabelMize (True) self.m_grid1.SetColLabelMize (True) self__ SetColLabel.mSize (.SetColLabelAlignment (xx.ALIGN_CENTRE, xxALIGN_CENTRE) # Rindas self.m_grid1.EnableDragRowSize (True) self.m_grid1.SetRowLabelSize (80) self.m_grid1.SetRowLabelAlignment (xx.ALIGN_CENTRE, wx.ALIGN_CENTRE) # Etiķetes izskats # Šūnas noklusējumi self.m_GR1 .SetLignment_OPELL, w / w Noklusējuma iestatījumi w / wm_grid1.SetLIGNDefaultCell_FT) bSizer1.Add (self.m_grid1, 0, wx.ALL, 5) self.m_staticline4 = wx.StaticLine (self, wx.ID_ANY, wx.DefaultPosition , wx.LI_HORIZONTAL) bSizer1. Pievienot (self.m_staticline4, 0, wx.EXPAND | wx.ALL, 5) fgSizer1 = wx.FlexGridSizer (0, 4, 0, 0) fgSizer1.SetFlexibleDirection (wx.BOTH) fgSode1.Get (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.EXPAND) 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. Pievienot (self. M_staticText3, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) m_comboBox1Choices = [] self.m_comboBox1 = wx.ComboBox (self, wx.ID_ANY, u "Select", wx.DefaultPosition, wx1Dom ). Pievienot (self.m_comboBox1, 0, wx.ALL, 5) self.m_staticText4 = wx.StaticText (self, wx.ID_ANY, u "Ieraksta datums", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText4 . Aptīt (-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.Pievienot (fgSizer1, 1, wx.EXPAND | wx.ALL, 5) self.m_staticline3 = wx.StaticLine (self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) bSizer1. Pievienot (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 "Dzēst", 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 "Atvērt", wx .EmptyString, wx.ITEM_NORMAL) self.m_menu1.AppendItem (self.m_menuItem1) self.m_menu1.AppendSeparator () self.m_menuItem3 = wx.MenuItem (self.m_menu1, wx.ID_ANY, u "Exit", wx.Empt Tukšs .ITEM_NORMAL) self.m_menu1.AppendItem (self.m_menuItem3) self.m_menubar1.Append (self.m_menu1 vai "Faili") self.SetMenuBar (self.m_menubar1) self.Centre (wx.BOTH) # klikšķis notikums, kas izsauc funkciju ieraksts self.m_button4.Bind (wx.EVT_LEFT_DOWN, self.Record) def __del __ (self): pass # izveidot pielāgotu ziņojumu vai dialoglodziņu def Message (self, msg, title, style): dlg = wx.MessageDialog ( parent = Nav, message = msg, caption = title, style = style) dlg.ShowModal () dlg.Destroy () # Ieraksta funkcija, kas reaģē uz notikumu, noklikšķiniet def Ieraksts (pats, notikums): self.Message ("Tas ir a click! event "," Information - Tutorial ", wx.OK | wx.ICON_INFORMATION) app = wx.App (False) frame = MyForm (None) frame.Show (True) app.MainLoop () 

Tālāk mēs pārbaudīsim to pašu lietojumprogrammu Windows 7 instalācijā ar iepriekš instalētiem Python un wxpython, un rezultāts ir šāds:

Kad esam pabeiguši pilnu izstrādi, lietojumprogrammu var izplatīt, izmantojot tādu programmatūru kā InnoSetup, kā mēs to redzējām apmācībās:

  • Izveidojiet instalētājus, izmantojot Inno Setup
  • Pielāgots instalētājs mūsu programmatūras izplatīšanai.

wxFormBuilder ir vizuāla vide, kas ļauj mums ģenerēt Python kodu ar platformu wxPython, cita alternatīva grafisko saskarņu izstrādei Python būs lietotāja ziņā, vai izmantot PyQt vai wxPython.

Viena no lielākajām wxFormBuilder priekšrocībām ir tā, ka tajā ir daudz komponentu un logrīku, kas ir ļoti pielāgojami pat vairāk nekā citās populārākās vidēs. Mēs varam redzēt rezultātus, veidojot lietojumprogrammas, tāpēc mums var būt dažādas grafiskā interfeisa versijas un pievienotais kods. Atšķirībā no Qt Designer, wxFormBuilder ļauj ģenerēt notikumus un pēc tam izsaukt noteiktu funkcionalitāti.
.

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