wxPython - wxPython

WxPython
WxPython-logo.png
Udvikler (er) Robin Dunn
Harri Pasanen
Første udgivelse 1998 ; 23 år siden ( 1998 )
Stabil udgivelse
4.1.1 / 21. november 2020 ; 9 måneder siden ( 2020-11-21 )
Depot
Skrevet i C ++ / Python
Operativ system På tværs af platforme
Licens wxWindows -licens
Internet side wxpython .org

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.

Image
Luk knappen med wxPython vist på 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 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

Referencer

Citater

Kilder

Yderligere læsning

eksterne links