wxPython - wxPython

WxPython
WxPython-logo.png
Utvikler (er) Robin Dunn
Harri Pasanen
Første utgivelse 1998 ; 23 år siden ( 1998 )
Stabil utgivelse
4.1.1 / 21. november 2020 ; 9 måneder siden ( 2020-11-21 )
Oppbevaringssted
Skrevet inn C ++ / Python
Operativsystem Kryssplattform
Tillatelse wxWindows -lisens
Nettsted wxpython .org

wxPython er en wrapper for tvers-plattform GUI API (ofte referert til som en " verktøykasse ") wxWidgets (som er skrevet i C ++ ) for Python programmeringsspråk . Det er et av alternativene til Tkinter . Den er implementert som en Python -utvidelsesmodul ( opprinnelig kode ).

Tillatelse

WxPython er en wrapper og bruker den samme gratis programvarelisensen som brukes av wxWidgets ( wxWindows License ) - som er godkjent av Free Software Foundation og Open Source Initiative .

Historie

wxPython ble opprettet da Robin Dunn trengte en GUI for å bli distribuert på HP-UX- systemer og også på Windows 3.1 i løpet av få uker. Mens han evaluerte kommersielle løsninger, løp han over Python -bindinger for wxWidgets verktøykasse. Dermed lærte han Python, og på kort tid ble han sammen med Harri Pasanen en av hovedutviklerne av wxPython, som vokste fra de første bindingene.

De første versjonene av emballasjen ble laget for hånd. Imidlertid ble kodebasen snart veldig vanskelig å vedlikeholde og holde synkronisert med wxWidgets -utgivelser. Senere versjoner ble opprettet med SWIG , noe som reduserte mengden arbeid med å oppdatere innpakningen kraftig. Den første "moderne" versjonen ble kunngjort i 1998.

Eksempel

Dette er en enkel " Hei verden " -modul, som viser opprettelsen av de to hovedobjektene i wxPython (hovedvinduobjektet og applikasjonsobjektet), etterfulgt av å overføre kontrollen til det hendelsesdrevne systemet (ved å ringe MainLoop()) som administrerer brukeren -interaktiv del av programmet.

#!/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()

Dette er et annet eksempel på wxPython Close Button med wxPython GUI -skjermvisning i Windows 10 -operativsystem.

Image
Lukk -knapp med wxPython vist på 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()

Prosjekt Phoenix

Project Phoenix, som begynte i 2010, er et forsøk på å rydde opp i wxPython -implementeringen og i prosessen gjøre den kompatibel med Python 3. Dette prosjektet er en ny implementering av wxPython, med fokus på å forbedre hastighet, vedlikehold og utvidbarhet. På samme måte som "Classic" wxPython, pakker den inn wxWidgets C ++ -verktøysettet og gir tilgang til brukergrensesnittdelene i wx API, slik at Python -applikasjoner kan ha et grafisk brukergrensesnitt på Windows-, Mac- eller Unix -systemer med et opprinnelig utseende og behov som krever veldig liten, om noen, plattformsspesifikk kode.

Applikasjoner utviklet med wxPython

Referanser

Sitater

Kilder

Videre lesning

Eksterne linker