wxPython
![]() | |
Разработчик(и) | Робин Данн Харри Пасанен |
---|---|
Первоначальный выпуск | 1998 год |
Стабильная версия | 4.2.1 [1]
/ 7 июня 2023 г |
Репозиторий | |
Написано в | С++ / Питон |
Операционная система | Кросс-платформенный |
Лицензия | Лицензия wxWindows |
Веб-сайт | wxpython |
wxPython — это оболочка кроссплатформенного языка GUI API (часто называемого « набором инструментов ») wxWidgets (написанного на C++ ) для программирования Python . Это одна из альтернатив Tkinter . Он реализован как модуль расширения Python ( родной код ).
История
[ редактировать ]В 1995 году Робину Данну требовалось приложение с графическим интерфейсом , которое можно было бы развернуть в системах HP-UX, а также запустить Windows 3.1 в короткие сроки . Ему нужно было кроссплатформенное решение. Оценивая бесплатные и коммерческие решения, он наткнулся на привязки Python на веб-странице набора инструментов wxWidgets (известной в то время как wxWindows). Это было введение Данна в Python. Вместе с Харри Пасаненом и Эдвардом Циммерманом он разработал эти первоначальные привязки в wxPython 0.2. [2]
В августе 1998 года была выпущена версия wxPython 0.3. Он был создан для wxWidgets 2.0 и работал на Win32, а версия wxGTK находится в разработке. [3]
Первые версии обертки создавались вручную. Однако код стало сложно поддерживать и синхронизировать с выпусками wxWidgets. К 1997 году версии были созданы с помощью SWIG , что значительно сократило объем работы по обновлению оболочки. [2]
Проект Феникс
[ редактировать ]В 2010 году начался проект «Феникс»; попытка очистить реализацию wxPython и в процессе сделать ее совместимой с Python 3. [4] Проект представляет собой новую реализацию wxPython, ориентированную на повышение скорости, удобства сопровождения и расширяемости. Как и предыдущая версия wxPython, он включает в себя набор инструментов wxWidgets C++ и обеспечивает доступ к частям пользовательского интерфейса wxWidgets API . [5]
С выпуском 4.0.0a1 wxPython в 2017 году версия Project Phoenix стала официальной версией. [6] wxPython 4.x — текущая версия, разрабатываемая по состоянию на июнь 2022 года. [7]
Использовать
[ редактировать ]wxPython позволяет использовать Python для кроссплатформенных приложений с графическим интерфейсом , требующих очень мало кода, специфичного для платформы, или вообще его вообще не требуется.
Пример
[ редактировать ]Это простой модуль « Привет, мир », изображающий создание двух основных объектов в wxPython (объект главного окна и объект приложения) с последующей передачей управления системе, управляемой событиями (путем вызова MainLoop()
), который управляет интерактивной с пользователем частью программы.
#!/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()
Это еще один пример кнопки закрытия wxPython с отображением графического интерфейса wxPython в операционной системе 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()
Лицензия
[ редактировать ]Будучи оболочкой, wxPython использует ту же лицензию на бесплатное программное обеспечение , что и wxWidgets ( лицензия wxWindows ). [8] — который одобрен Фондом свободного программного обеспечения и Инициативой открытого исходного кода .
Приложения, разработанные с помощью wxPython
[ редактировать ]- Чендлер , по личной информации менеджер
- Dropbox — настольный клиент для облачного хранилища Dropbox. [9]
- Editra — многоплатформенный текстовый редактор.
- Google Drive , настольный клиент для облачной системы хранения данных Google. [10]
- GRASS GIS — бесплатная с открытым исходным кодом. географическая информационная система
- Metamorphosis , пакетное переименование
- Phatch — пакетный процессор фотографий.
- PlayOnLinux и PlayOnMac , Wine интерфейсы
- PsychoPy — инструмент создания экспериментов для области нейробиологии и психологии. исследований в
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ «Журнал изменений wxPython» . wxПитон . 07.06.2023 . Проверено 30 июня 2023 г.
- ^ Перейти обратно: а б Команда The wxPython (14 июля 2017 г.). «История wxPython» . wxПитон . Проверено 25 июня 2022 г.
- ^ «Yahoo! Группы: python-announce-list Сообщения: Сообщение 95 из 1083» . 12 марта 2001 г. Архивировано из оригинала 12 марта 2001 года . Проверено 25 июня 2022 г.
- ^ «Цели проекта Феникс» . Проверено 17 марта 2016 г.
- ^ «Файл readme проекта Phoenix на GitHub» . Проверено 1 января 2014 г.
- ^ Робин (16 апреля 2017 г.). «Выпуск wxPython 4.0.0a1» . wxПитон . Проверено 25 июня 2022 г.
- ^ Команда The wxPython (21 ноября 2020 г.). «Выпущена wxPython 4.1.1» . wxПитон . Проверено 25 июня 2022 г.
- ^ «Уведомление об авторских правах» . Проверено 27 февраля 2009 г.
- ^ «6 уроков из Dropbox: миллион файлов сохраняется каждые 15 минут» .
- ^ «Компоненты и лицензии с открытым исходным кодом» . Google . Проверено 28 января 2013 г.
Источники
[ редактировать ]- Рэппин, Ноэль; Данн, Робин (1 марта 2006 г.). wxPython в действии . Гринвич: Публикации Мэннинга . п. 552. ИСБН 978-1-932394-62-7 .
Дальнейшее чтение
[ редактировать ]- Прекорд, Коди (декабрь 2010 г.). Книга рецептов разработки приложений wxPython 2.8 . Гринвич: Packt Publishing . п. 308. ИСБН 978-1-84951-178-0 .
Внешние ссылки
[ редактировать ]