wxPython - wxPython

WxPython
WxPython-logo.png
Sviluppatore/i Robin Dunn
Harri Pasanen
Versione iniziale 1998 ; 23 anni fa ( 1998 )
Rilascio stabile
4.1.1 / 21 novembre 2020 ; 9 mesi fa ( 2020-11-21 )
Repository
Scritto in C++ / Python
Sistema operativo Multipiattaforma
Licenza Licenza wxWindows
Sito web wxpython .org

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.

Image
Pulsante Chiudi con wxPython mostrato su 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

Ulteriori letture

link esterno