wxPython - wxPython
| Udvikler (er) | Robin Dunn Harri Pasanen |
|---|---|
| Første udgivelse | 1998 |
| Stabil udgivelse | 4.1.1 / 21. november 2020
|
| Depot | |
| Skrevet i | C ++ / Python |
| Operativ system | På tværs af platforme |
| Licens | wxWindows -licens |
| Internet side | wxpython |
wxPython er en indpakning til tvær-platform GUI API (ofte omtalt som et " værktøjskasse ") wxWidgets (som er skrevet i C ++ ) til Python programmeringssprog . Det er et af alternativerne til Tkinter . Det er implementeret som et Python -udvidelsesmodul ( native kode ).
Licens
Som en indpakning bruger wxPython den samme gratis softwarelicens, der bruges af wxWidgets ( wxWindows License ) - som er godkendt af Free Software Foundation og Open Source Initiative .
Historie
wxPython blev oprettet, da Robin Dunn havde brug for en GUI til at blive implementeret på HP-UX- systemer og også på Windows 3.1 inden for få uger. Mens han evaluerede kommercielle løsninger, løb han over Python -bindinger til wxWidgets -værktøjssættet. Således lærte han Python og, på kort tid, sammen med Harri Pasanen , blev en af de vigtigste udviklere af wxPython, som voksede fra disse indledende bindinger.
De første versioner af indpakningen blev skabt i hånden. Imidlertid blev kodebasen hurtigt meget vanskelig at vedligeholde og synkronisere med wxWidgets -udgivelser. Senere versioner blev oprettet med SWIG , hvilket reducerede mængden af arbejde med at opdatere indpakningen kraftigt. Den første "moderne" version blev annonceret i 1998.
Eksempel
Dette er et simpelt " Hej verden " -modul, der viser oprettelsen af de to hovedobjekter i wxPython (hovedvindueobjektet og applikationsobjektet), efterfulgt af at overføre kontrollen til det hændelsesdrevne system (ved at ringe MainLoop()), som administrerer brugeren -interaktiv del af 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 andet eksempel på wxPython Luk -knap med wxPython GUI -skærmvisning 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()
Projekt Phoenix
Project Phoenix, der begyndte i 2010, er et forsøg på at rydde op i wxPython -implementeringen og i processen gøre det kompatibelt med Python 3. Dette projekt er en ny implementering af wxPython, der fokuserer på at forbedre hastighed, vedligeholdelse og udvidelse. Ligesom den "klassiske" wxPython omslutter den wxWidgets C ++ værktøjssættet og giver adgang til brugergrænseflade -dele af wx API, hvilket gør det muligt for Python -applikationer at have en grafisk brugergrænseflade på Windows, Mac eller Unix -systemer med et indbygget udseende og behov meget lidt, hvis nogen, platformsspecifik kode.
Applikationer udviklet med wxPython
- Chandler , en personlig informationschef
- Dropbox , desktopklient til Dropbox skybaseret lager
- Editra , en tekstredigerer på flere platforme
- Google Drive , desktop-klient til Googles skybaserede lagersystem
- GRASS GIS , et gratis, open source geografisk informationssystem
- Metamorphose , en batch -renamer
- Phatch , en fotobatchprocessor
- PlayOnLinux og PlayOnMac , Wine front-ends
- PsychoPy , værktøj til oprettelse af eksperimenter til neurovidenskab og psykologi
Referencer
Citater
Kilder
- Rappin, Noel; Dunn, Robin (1. marts 2006). wxPython i aktion . Greenwich: Manning Publications . s. 552. ISBN 978-1-932394-62-7.
Yderligere læsning
- Precord, Cody (december 2010). wxPython 2.8 Application Development Cookbook . Greenwich: Packt Publishing . s. 308. ISBN 978-1-84951-178-0.
eksterne links