wxPython - wxPython
| Ontwikkelaar(s) | Robin Dunn Harri Pasanen |
|---|---|
| Eerste uitgave | 1998 |
| Stabiele vrijlating | 4.1.1 / 21 november 2020
|
| Opslagplaats | |
| Geschreven in | C++ / Python |
| Besturingssysteem | Cross-platform |
| Vergunning | wxWindows-licentie |
| Website | wxpython |
wxPython is een wrapper voor de platformonafhankelijke GUI API (vaak aangeduid als een " toolkit ") wxWidgets (die is geschreven in C++ ) voor de programmeertaal Python . Het is een van de alternatieven voor Tkinter . Het is geïmplementeerd als een Python-uitbreidingsmodule ( native code ).
Vergunning
Omdat het een wrapper is, gebruikt wxPython dezelfde gratis softwarelicentie die wordt gebruikt door wxWidgets ( wxWindows-licentie ), die is goedgekeurd door Free Software Foundation en Open Source Initiative .
Geschiedenis
wxPython is gemaakt toen Robin Dunn een GUI nodig had die binnen een paar weken op HP-UX- systemen en ook op Windows 3.1 moest worden geïmplementeerd . Bij het evalueren van commerciële oplossingen kwam hij Python- bindingen tegen voor de wxWidgets-toolkit. Zo leerde hij Python en werd in korte tijd samen met Harri Pasanen een van de belangrijkste ontwikkelaars van wxPython, dat voortkwam uit die eerste bindingen.
De eerste versies van de wikkel werden met de hand gemaakt. Al snel werd de codebasis echter erg moeilijk te onderhouden en gesynchroniseerd te houden met de releases van wxWidgets. Latere versies werden gemaakt met SWIG , waardoor de hoeveelheid werk om de wrapper bij te werken aanzienlijk werd verminderd. De eerste "moderne" versie werd aangekondigd in 1998.
Voorbeeld
Dit is een eenvoudige " Hallo wereld "-module, die de creatie van de twee hoofdobjecten in wxPython (het hoofdvensterobject en het toepassingsobject) weergeeft, gevolgd door het doorgeven van de besturing aan het gebeurtenisgestuurde systeem (door te bellen MainLoop()) dat de gebruiker beheert -interactief deel van het programma.
#!/usr/bin/env python3
import wx
app = wx.App(False) # Create a new app, don't redirect stdout/stderr to a window.
frame = wx.Frame(None, title="Hello World") # A Frame is a top-level window.
frame.Show(True) # Show the frame.
app.MainLoop()
Dit is een ander voorbeeld van wxPython Close Button met wxPython GUI-weergave in het Windows 10-besturingssysteem.
import wx
class WxButton(wx.Frame):
def __init__(self, *args, **kw):
super(WxButton, self).__init__(*args, **kw)
self.InitUI()
def InitUI(self):
pnl = wx.Panel(self)
closeButton = wx.Button(pnl, label='Close Me', pos=(20, 20))
closeButton.Bind(wx.EVT_BUTTON, self.OnClose)
self.SetSize((350, 250))
self.SetTitle('Close Button')
self.Centre()
def OnClose(self, e):
self.Close(True)
def main():
app = wx.App()
ex = WxButton(None)
ex.Show()
app.MainLoop()
if __name__ == "__main__":
main()
Project Phoenix
Project Phoenix, dat begon in 2010, is een poging om de wxPython-implementatie op te schonen en in het proces compatibel te maken met Python 3. Dit project is een nieuwe implementatie van wxPython, gericht op het verbeteren van snelheid, onderhoudbaarheid en uitbreidbaarheid. Net als "Classic" wxPython, omhult het de wxWidgets C++ toolkit en biedt het toegang tot de gebruikersinterfacegedeelten van de wx API, waardoor Python-applicaties een grafische gebruikersinterface hebben op Windows-, Mac- of Unix-systemen met een native look en feel en vereisen zeer weinig of geen platformspecifieke code.
Applicaties ontwikkeld met wxPython
- Chandler , een persoonlijke informatiemanager
- Dropbox , desktopclient voor de cloudgebaseerde opslag van Dropbox
- Editra , een teksteditor voor meerdere platforms
- Google Drive , desktopclient voor het cloudgebaseerde opslagsysteem van Google
- GRASS GIS , een gratis, open source geografisch informatiesysteem
- Métamorphose , een batch hernoemer
- Phatch , een fotobatchprocessor
- PlayOnLinux en PlayOnMac , Wine front-ends
- PsychoPy , hulpmiddel voor het maken van experimenten voor neurowetenschappelijk en psychologisch onderzoek
Referenties
citaten
bronnen
- Rappin, Noël; Dunn, Robin (1 maart 2006). wxPython in actie . Greenwich: Manning-publicaties . P. 552. ISBN 978-1-932394-62-7.
Verder lezen
- Precord, Cody (december 2010). wxPython 2.8 Kookboek voor applicatieontwikkeling . Greenwich: uitgeverij Packt . P. 308. ISBN 978-1-84951-178-0.
Externe links