wxPython - wxPython

WxPython
WxPython-logo.png
Deweloper(zy) Robin Dunn
Harri Pasanen
Pierwsze wydanie 1998 ; 23 lata temu ( 1998 )
Wersja stabilna
4.1.1 / 21 listopada 2020 ; 9 miesięcy temu ( 21.11.2020 )
Magazyn
Napisane w C++ / Python
System operacyjny Wieloplatformowy
Licencja Licencja wxWindows
Strona internetowa wxpython .org

wxPython to wrapper dla wieloplatformowego interfejsu API GUI (często określanego jako " zestaw narzędzi ") wxWidgets (napisany w C++ ) dla języka programowania Python . Jest to jedna z alternatyw dla Tkintera . Jest zaimplementowany jako moduł rozszerzenia Pythona ( kod natywny ).

Licencja

Będąc opakowaniem, wxPython korzysta z tej samej licencji wolnego oprogramowania używanej przez wxWidgets ( wxWindows License ) — która jest zatwierdzona przez Free Software Foundation i Open Source Initiative .

Historia

wxPython powstał, gdy Robin Dunn potrzebował w ciągu kilku tygodni GUI w systemach HP-UX , a także w Windows 3.1 . Podczas oceny rozwiązań komercyjnych natknął się na powiązania Pythona dla zestawu narzędzi wxWidgets. W ten sposób nauczył się Pythona iw krótkim czasie, wraz z Harrim Pasanenem , stał się jednym z głównych programistów wxPythona, który wyrósł z tych początkowych powiązań.

Pierwsze wersje owijki powstawały ręcznie. Jednak wkrótce baza kodu stała się bardzo trudna w utrzymaniu i synchronizowaniu z wydaniami wxWidgets. Późniejsze wersje były tworzone za pomocą SWIG , co znacznie zmniejsza ilość pracy związanej z aktualizacją wrappera. Pierwsza „nowoczesna” wersja została ogłoszona w 1998 roku.

Przykład

Jest to prosty moduł „ Witaj świecie ”, przedstawiający tworzenie dwóch głównych obiektów w wxPython (obiekt okna głównego i obiekt aplikacji), a następnie przekazanie kontroli do systemu sterowanego zdarzeniami (poprzez wywołanie MainLoop()), który zarządza użytkownikiem -interaktywna część programu.

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

Jest to kolejny przykład wxPython Close Button z wyświetlaczem wxPython GUI w systemie operacyjnym Windows 10.

Przycisk zamykania z wxPython pokazany w systemie 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()

Projekt Feniks

Projekt Phoenix, który rozpoczął się w 2010 roku, jest próbą oczyszczenia implementacji wxPython, a tym samym zapewnienia jej kompatybilności z Pythonem 3. Ten projekt jest nową implementacją wxPython, skoncentrowaną na poprawie szybkości, łatwości konserwacji i rozszerzalności. Podobnie jak „Classic” wxPython, zawiera zestaw narzędzi wxWidgets C++ i zapewnia dostęp do części interfejsu użytkownika wx API, umożliwiając aplikacjom Pythona posiadanie graficznego interfejsu użytkownika w systemach Windows, Mac lub Unix z natywnym wyglądem i działaniem i wymaganiem bardzo mało, jeśli w ogóle, kodu specyficznego dla platformy.

Aplikacje opracowane w wxPython

  • Chandler , menedżer informacji osobistych
  • Dropbox , komputerowy klient do przechowywania danych w chmurze Dropbox
  • Editra , wieloplatformowy edytor tekstu
  • Dysk Google , klient komputerowy dla systemu przechowywania danych w chmurze Google
  • GRASS GIS , darmowy system informacji geograficznej o otwartym kodzie źródłowym
  • Métamorphose , zmiana nazwy partii
  • Phatch , procesor wsadowy do zdjęć
  • PlayOnLinux i PlayOnMac , wino przednie końce
  • PsychoPy , narzędzie do tworzenia eksperymentów dla neuronauki i psychologii

Bibliografia

Cytaty

Źródła

Dalsza lektura

Zewnętrzne linki