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 ) # Создайте новое приложение, не перенаправляя стандартный вывод/stderr в окно. рамка = шх . Frame ( None , title = "Hello World" ) # Frame — это окно верхнего уровня. рамка . Show ( True ) # Показать кадр. приложение . Главный цикл ()
Это еще один пример кнопки закрытия wxPython с отображением графического интерфейса wxPython в операционной системе Windows 10.
импортировать wx класс WxButton ( wx . Frame ): def __init__ ( self , * args , ** kw ): super ( WxButton , self ) . __init__ ( * args , ** kw ) self . InitUI () def InitUI ( self ): pnl = wx . Панель ( self ) closeButton = wx . Button ( pnl , label = 'Close Me' , pos = ( 20 , 20 )) closeButton . Bind ( wx.EVT_BUTTON , self.OnClose ) self . SetSize (( 350 , 250 )) self . SetTitle ( 'Кнопка закрытия' ) self . Center () def OnClose ( self , e ): self . Close ( True ) def main (): app = wx . App () ex = WxButton ( None ) ex . Показать () приложение . 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 .