wxPython - wxPython
| Utvikler (er) | Robin Dunn Harri Pasanen |
|---|---|
| Første utgivelse | 1998 |
| Stabil utgivelse | 4.1.1 / 21. november 2020
|
| Oppbevaringssted | |
| Skrevet inn | C ++ / Python |
| Operativsystem | Kryssplattform |
| Tillatelse | wxWindows -lisens |
| Nettsted | wxpython |
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.
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
- Chandler , en personlig informasjonssjef
- Dropbox , skrivebordsklient for Dropbox skybasert lagring
- Editra , en tekstredigerer med flere plattformer
- Google Drive , stasjonær klient for Google skybasert lagringssystem
- GRASS GIS , et gratis geografisk informasjonssystem med åpen kildekode
- Métamorfose , en batch -renamer
- Phatch , en fotobatchprosessor
- PlayOnLinux og PlayOnMac , Wine front-ender
- PsychoPy , verktøy for å lage eksperimenter for nevrovitenskap og psykologi
Referanser
Sitater
Kilder
- Rappin, Noel; Dunn, Robin (1. mars 2006). wxPython in Action . Greenwich: Manning Publications . s. 552. ISBN 978-1-932394-62-7.
Videre lesning
- Precord, Cody (desember 2010). wxPython 2.8 Programutvikling Kokebok . Greenwich: Packt Publishing . s. 308. ISBN 978-1-84951-178-0.
Eksterne linker