WxPython

WxPython
Логотип программы WxPython
Скриншот программы WxPython
Тип связывание Си и Python[d], библиотека виджетов[d] и Python-библиотека[d]
Разработчики Робин Данн
Гарри Пасанен
Написана на C++ и Python[2]
Операционная система Unix-подобная операционная система
Последняя версия 4.2.0 (7 августа 2022)
Репозиторий github.com/wxWidgets/Pho…
Состояние Активное
Лицензия wxWidgets License (совместима с GPL[1])
Сайт wxpython.org
Логотип Викисклада Медиафайлы на Викискладе

WxPython — кросплатформенная обёртка библиотек графического интерфейса пользователя для Python, основанная на wxWidgets, написанная на языке программирования C++. Одна из альтернатив Tkinter, которая поставляется вместе с Python. Реализована в виде модуля расширения Python (машинный код). Другие популярные альтернативы — PyGTK и PyQt. Так же, как и WxWidgets, WxPython является свободным программным обеспечением.

Лицензия

Как обёртка библиотеки, WxPython использует те же бесплатные лицензии на программное обеспечение, что и WxWidgets (WxWindows лицензии), которые утверждаются Фондом свободного программного обеспечения и Open Source Initiative.

История

Проект WxPython зародился, когда Робину Данну потребовался в ближайшие несколько недель графический интерфейс пользователя, развёрнутый на HP-UX системах, а также на Windows 3.1. При оценке коммерческих решений он наткнулся на Python, входящий в набор инструментальных средств WxWidgets. Таким образом он узнал Python и в скором времени, вместе с Харри Пасаненом, стал одним из основных разработчиков WxPython, которая произросла из этой начальной связки. Первые версии обёртки библиотеки создавались вручную. Однако вскоре ядро программы стало очень трудно поддерживать и синхронизировать с релизами WxWidgets. Более поздние версии были созданы с SWIG, значительно уменьшая объём работ на обновление обёртки. О выходе первой «современной» версии было объявлено в 1998 году.

Примеры

Ниже приведён модуль «Hello, world!», показывающий создание двух главных объектов в WxPython (основного объекта окна и объекта приложения), а затем передачи управления обработчику событий (вызовом функции MainLoop ()), который отвечает за интерактивную часть пользователя программы.

#!/usr/bin/env python

import wx
 
class TestFrame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, id=-1, title=title)
        text = wx.StaticText(self, label=title)
 
app = wx.App()
frame = TestFrame(None, "Hello, world!")
frame.Show()
app.MainLoop()

Приложения, разработанные с использованием WxPython

  • BitTorrent — первый клиент для протокола BitTorrent
  • Chandler — персональный информационный менеджер
  • Dropbox — облачное хранилище данных
  • Phatch — пакетный обработчик изображений
  • Métamorphose — пакетный переименователь
  • PlayOnLinux и PlayOnMac — надстройки над Wine
  • GRASS (ГИС) — бесплатная система для обработки географической информации с открытым исходным кодом
  • Диск Google — настольный клиент для системы облачного хранения данных Google[3]

См. также

  • wxWidgets
  • wxGlade (англ.)
  • XRCed (англ.)

Примечания

  1. http://www.wxwidgets.org/about/newlicen.htm Архивная копия от 2 июля 2010 на Wayback Machine  (англ.) — Разъяснение лицензии
  2. The wxpython Open Source Project on Open Hub: Languages Page — 2006.
  3. Открытые исходные компоненты и лицензии (англ.). Google. Дата обращения: 28 января 2013. Архивировано 25 мая 2013 года.

Литература

Noel, Rappin; Dunn, Robin. wxPython в действии = wxPython in Action. — Greenwich: Manning Publications, 2006. — P. 552. — ISBN 978-1-932394-62-7.

Ссылки

  • Медиафайлы на Викискладе
  • wxpython.org — официальный сайт WxPython
  • Список приложений, разработанных с использованием WxPython
  • Учебные видеоролики для начала WxPython программирования на showmedo
Перейти к шаблону «WxWidgets»
Технологии
XML Resource
Строители
RAD/GUI
Свободные и открытые
Проприетарные
  • wxDesigner
  • DialogBlocks
Библиотеки
wxSQLite3
Привязки
  • wxPython
  • wxPerl
  • wxBasic
  • wxHaskell
  • GLUEscript
Перейти к шаблону «Инструментарии виджетов»
Инструментарии (наборы) элементов графического интерфейса
Низко-
уровневые
Высоко-
уровневые
Amiga OS
Mac OS и
macOS
  • Cocoa
  • MacApp
  • MacZoop
  • PowerPlant
Windows
UNIX, под X
Кросс-
платфор-
менные
На основе Flash
На основе XML,
AJAX или SVG
На основе Java
На основе
C или C++
На основе Common Lisp
На основе Pascal
На основе Python
На основе Objective C
Перейти к шаблону «Python»
Сообщество
Реализации
Другое