wxPython - wxPython

WxPython
WxPython-logo.png
Разработчики) Робин Данн
Харри Пасанен
Первый выпуск 1998 ; 23 года назад ( 1998 )
Стабильный выпуск
4.1.1 / 21 ноября 2020 г . ; 9 месяцев назад ( 21.11.2020 )
Репозиторий
Написано в C ++ / Python
Операционная система Кроссплатформенность
Лицензия Лицензия wxWindows
Веб-сайт WxPython .org

wxPython - это оболочка для кроссплатформенного GUI API (часто называемого « набором инструментов ») wxWidgets (написанного на C ++ ) для языка программирования Python . Это одна из альтернатив Tkinter . Он реализован как модуль расширения Python ( собственный код ).

Лицензия

Будучи оболочкой, wxPython использует ту же лицензию бесплатного программного обеспечения, что и wxWidgets ( лицензия wxWindows ), которая одобрена Free Software Foundation и Open Source Initiative .

История

wxPython был создан, когда Робину Данну потребовалось развернуть графический интерфейс в системах HP-UX , а также в Windows 3.1 в течение нескольких недель. При оценке коммерческих решений он наткнулся на привязки Python к набору инструментов wxWidgets. Таким образом, он изучил Python и за короткое время вместе с Харри Пасаненом стал одним из основных разработчиков wxPython, выросшего из этих начальных привязок.

Первые версии обертки создавались вручную. Однако вскоре кодовую базу стало очень трудно поддерживать и синхронизировать с выпусками wxWidgets. Более поздние версии были созданы с помощью SWIG , что значительно уменьшило объем работы по обновлению оболочки. Первая «современная» версия была анонсирована в 1998 году.

Пример

Это простой модуль « Hello world », изображающий создание двух основных объектов в 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.

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

Проект Феникс

Проект Phoenix, начатый в 2010 году, представляет собой попытку очистить реализацию wxPython и в процессе сделать ее совместимой с Python 3. Этот проект представляет собой новую реализацию wxPython, направленную на повышение скорости, ремонтопригодности и расширяемости. Как и «классический» wxPython, он включает в себя инструментарий wxWidgets C ++ и обеспечивает доступ к частям пользовательского интерфейса wx API, позволяя приложениям Python иметь графический пользовательский интерфейс в системах Windows, Mac или Unix с естественным внешним видом и требовать очень мало кода, специфичного для платформы, если вообще есть.

Приложения, разработанные с помощью wxPython

  • Чендлер , персональный информационный менеджер
  • Dropbox , настольный клиент для облачного хранилища Dropbox
  • Editra , многоплатформенный текстовый редактор
  • Google Drive , настольный клиент для облачной системы хранения Google
  • GRASS GIS , бесплатная географическая информационная система с открытым исходным кодом
  • Métamorphose , пакетный переименователь
  • Phatch , пакетный процессор фотографий
  • PlayOnLinux и PlayOnMac , вино передние концы
  • PsychoPy , инструмент для создания экспериментов в области нейробиологии и психологии.

использованная литература

Цитаты

Источники

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

  • Прекорд, Коди (декабрь 2010 г.). wxPython 2.8 Руководство по разработке приложений . Гринвич: Packt Publishing . п. 308. ISBN 978-1-84951-178-0.

внешние ссылки