wxPython - wxPython

WxPython
WxPython-logo.png
Ontwikkelaar(s) Robin Dunn
Harri Pasanen
Eerste uitgave 1998 ; 23 jaar geleden ( 1998 )
Stabiele vrijlating
4.1.1 / 21 november 2020 ; 9 maanden geleden ( 2020-11-21 )
Opslagplaats
Geschreven in C++ / Python
Besturingssysteem Cross-platform
Vergunning wxWindows-licentie
Website wxpython .org

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.

Image
Sluitknop met wxPython weergegeven op Windows 10
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

Referenties

citaten

bronnen

Verder lezen

Externe links