WxPython

wxPython یک بسته‌بندی برای API کراس پلت فرم GUI (که اغلب به آن «جعبه ابزار» گفته می‌شود). wxWidgets (که با زبان ++C نوشته می‌شود) برای زبان برنامه‌نویسی پایتون است. این یکی از گزینه‌های جایگزین تکینتر است و به عنوان یک ماژول پسوند Python (کد ماشین) اجرا می‌شود.

مجوز 
wxPython به عنوان یک بسته‌بندی، از مجوز نرم‌افزار آزاد استفاده شده توسط wxWidgets (مجوز wxWindows) - و مورد تأیید بنیاد نرم‌افزار آزاد و ابتکار منبع باز است.

تاریخچه 
wxPython زمانی که رابین دان  به GUI نیاز داشت که در سیستم‌های HP-UX و همچنین در ویندوز ۳٫۱ اجرا شود ساخته شد. او در حالی که به راه‌حل‌های تجاری فکر می‌کرد، با اتصالات پایتون برای جعبه ابزار wxWidget روبه‌رو شد؛ بنابراین، او پایتون را آموخت و در مدت زمان کوتاهی با هری پسانن  به یکی از توسعه دهندگان اصلی wxPython تبدیل شد که از همان اتصالات اولیه رشد می‌کرد.

اولین نسخه‌های بسته‌بندی با دست ایجاد شده‌اند. با این حال، پس از مدت کوتاهی نگهداری و همگام سازی کدهای پایه با نسخه‌های wxWidgets بسیار سخت شد. نسخه‌های بعدی با SWIG ایجاد شدند، که مقدار کار برای به روزرسانی بسته‌بندی را بسیار کاهش می‌دادند. اولین نسخه «مدرن» در سال ۱۹۹۸ منتشر شد.

نمونه 
این یک کد ساده "Hello world" است که ایجاد دو شی اصلی در wxPython (شی پنجره اصلی و شی صفحه برنامه) را به تصویر می‌کشد و پس از آن کنترل را به سیستم رویداد محور منتقل می‌کند (با فراخوانی MainLoop()) که قسمت تعاملی کاربر با برنامه را مدیریت می‌کند.#!/usr/bin/env python3

import wx

app = wx.App(False)  # برنامه جدیدی ایجاد کنید
frame = wx.Frame(None, title="Hello World") # صفحه یک پنجره سطح بالا است
frame.Show(True)     # صفحه را نشان دهید
app.MainLoop()این نمونه دیگری از دکمه خروج در wxPython با نمایش صفحه نمایش wxPython GUI در سیستم عامل ویندوز ۱۰ است.

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()

برنامه‌های توسعه یافته با wxPython 
 چندلر، یک مدیر اطلاعات شخصی
 ادیترا، ویرایشگر متن چند سکویی
 گوگل درایو، سمت دسکتاپ برای ذخیره‌سازی مبتنی بر ابر گوگل
 GRASS GIS، یک سیستم اطلاعات جغرافیایی منبع باز و رایگان
 Métamorphose، تغییر نام دسته ای
 Phatch، پردازنده دسته عکس
 PsychoPy، ابزار ایجاد آزمایش جهت تحقیقات علوم اعصاب و روانشناسی

پیوند به بیرون 
 
 پروژه ققنوس
 لیست برنامه‌های توسعه یافته با wxPython
 فیلم‌های آموزشی برای شروع برنامه‌نویسی wxPython  در showmedo

منابع 

ابزارهای ویدجت
کتابخانه‌های پایتون
کتابخانه‌های رایانه‌ای آزاد
نرم‌افزارهای ۱۹۹۸ (میلادی)