Jump to content

wxPython

Разработчик(и) Робин Данн
Харри Пасанен
Первоначальный выпуск 1998 год ; 26 лет назад ( 1998 )
Стабильная версия
4.2.1 [1] / 7 июня 2023 г .; 13 месяцев назад ( 07.06.2023 )
Репозиторий
Написано в С++ / Питон
Операционная система Кросс-платформенный
Лицензия Лицензия wxWindows
Веб-сайт wxpython .org

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.

Кнопка закрытия с 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

[ редактировать ]
  1. ^ «Журнал изменений wxPython» . wxПитон . 07.06.2023 . Проверено 30 июня 2023 г.
  2. ^ Перейти обратно: а б Команда The wxPython (14 июля 2017 г.). «История wxPython» . wxПитон . Проверено 25 июня 2022 г.
  3. ^ «Yahoo! Группы: python-announce-list Сообщения: Сообщение 95 из 1083» . 12 марта 2001 г. Архивировано из оригинала 12 марта 2001 года . Проверено 25 июня 2022 г.
  4. ^ «Цели проекта Феникс» . Проверено 17 марта 2016 г.
  5. ^ «Файл readme проекта Phoenix на GitHub» . Проверено 1 января 2014 г.
  6. ^ Робин (16 апреля 2017 г.). «Выпуск wxPython 4.0.0a1» . wxПитон . Проверено 25 июня 2022 г.
  7. ^ Команда The wxPython (21 ноября 2020 г.). «Выпущена wxPython 4.1.1» . wxПитон . Проверено 25 июня 2022 г.
  8. ^ «Уведомление об авторских правах» . Проверено 27 февраля 2009 г.
  9. ^ «6 уроков из Dropbox: миллион файлов сохраняется каждые 15 минут» .
  10. ^ «Компоненты и лицензии с открытым исходным кодом» . Google . Проверено 28 января 2013 г.

Источники

[ редактировать ]

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c7de9a7699c3714c84941d6c62def5af__1693278240
URL1:https://arc.ask3.ru/arc/aa/c7/af/c7de9a7699c3714c84941d6c62def5af.html
Заголовок, (Title) документа по адресу, URL1:
wxPython - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)