wxPython - wxPython
| Sviluppatore/i | Robin Dunn Harri Pasanen |
|---|---|
| Versione iniziale | 1998 |
| Rilascio stabile | 4.1.1 / 21 novembre 2020
|
| Repository | |
| Scritto in | C++ / Python |
| Sistema operativo | Multipiattaforma |
| Licenza | Licenza wxWindows |
| Sito web | wxpython |
wxPython è un wrapper per l' API GUI multipiattaforma (spesso indicata come " toolkit ") wxWidgets (scritto in C++ ) per il linguaggio di programmazione Python . È una delle alternative a Tkinter . È implementato come modulo di estensione Python ( codice nativo ).
Licenza
Essendo un wrapper, wxPython utilizza la stessa licenza software gratuita utilizzata da wxWidgets ( licenza wxWindows ), che è approvata dalla Free Software Foundation e dall'Open Source Initiative .
Storia
wxPython è stato creato quando Robin Dunn aveva bisogno di una GUI da distribuire sui sistemi HP-UX e anche su Windows 3.1 entro poche settimane. Durante la valutazione di soluzioni commerciali, si è imbattuto in collegamenti Python per il toolkit wxWidgets. Così imparò Python e, in breve tempo, insieme ad Harri Pasanen , divenne uno dei principali sviluppatori di wxPython, che nacque da quei binding iniziali.
Le prime versioni del wrapper sono state create a mano. Tuttavia, presto il codice di base è diventato molto difficile da mantenere e mantenere sincronizzato con le versioni di wxWidgets. Versioni successive sono state create con SWIG , riducendo notevolmente la quantità di lavoro per aggiornare il wrapper. La prima versione "moderna" è stata annunciata nel 1998.
Esempio
Questo è un semplice modulo " Hello world ", che raffigura la creazione dei due oggetti principali in wxPython (l'oggetto finestra principale e l'oggetto applicazione), seguito dal passaggio del controllo al sistema event-driven (chiamando MainLoop()) che gestisce l'utente -parte interattiva del 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()
Questo è un altro esempio di pulsante Chiudi wxPython con visualizzazione della GUI di wxPython nel sistema operativo 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()
Progetto Fenice
Il progetto Phoenix, iniziato nel 2010, è uno sforzo per ripulire l'implementazione di wxPython e nel processo renderla compatibile con Python 3. Questo progetto è una nuova implementazione di wxPython, focalizzata sul miglioramento della velocità, della manutenibilità e dell'estensibilità. Proprio come il "Classic" wxPython, racchiude il toolkit C++ wxWidgets e fornisce l'accesso alle parti dell'interfaccia utente dell'API wx, consentendo alle applicazioni Python di avere un'interfaccia utente grafica su sistemi Windows, Mac o Unix con un aspetto nativo e che richiede molto poco, se non del tutto, codice specifico della piattaforma.
Applicazioni sviluppate con wxPython
- Chandler , un gestore di informazioni personali
- Dropbox , client desktop per l'archiviazione basata su cloud Dropbox
- Editra , un editor di testo multipiattaforma
- Google Drive , client desktop per il sistema di archiviazione basato su cloud di Google
- GRASS GIS , un sistema informativo geografico gratuito e open source
- Métamorphose , un rinominatore batch
- Phatch , un elaboratore batch di foto
- PlayOnLinux e PlayOnMac , front-end Wine
- PsychoPy , strumento di creazione di esperimenti per la ricerca in neuroscienze e psicologia
Riferimenti
citazioni
Fonti
- Rappino, Noel; Dunn, Robin (1 marzo 2006). wxPython in azione . Greenwich: Pubblicazioni di Manning . P. 552. ISBN 978-1-932394-62-7.
Ulteriori letture
- Precord, Cody (dicembre 2010). wxPython 2.8 Ricettario per lo sviluppo di applicazioni . Greenwich: Pubblicazione del pacchetto . P. 308. ISBN 978-1-84951-178-0.
link esterno
- Sito ufficiale
- Pagina principale del progetto Phoenix
- Elenco delle applicazioni sviluppate con wxPython