Оригинальные wxWidgets (написанные на C ++) — это огромная библиотека классов. Классы GUI из этой библиотеки портированы на Python с модулем wxPython, который пытается отразить исходную библиотеку wxWidgets как можно ближе. Таким образом, класс wx.Frame в wxPython действует так же, как класс wxFrame в его версии C ++.
wxObject является основой для большинства классов. Объект wxApp (wx.App в wxPython) представляет само приложение. После создания графического интерфейса приложение входит в цикл обработки событий методом MainLoop (). На следующих диаграммах показана иерархия классов наиболее часто используемых классов GUI, включенных в wxPython.
Класс wx.Frame имеет конструктор по умолчанию без аргументов.
Класс wx.Panel обычно помещается внутри объекта wxFrame. Этот класс также унаследован от класса wxWindow.
Объект класса wx.StaticText представляет элемент управления, содержащий такой текст только для чтения. Его можно назвать пассивным контролем, поскольку он не производит никаких событий.
В wxPython объект класса wx.TextCtrl служит для этой цели. Это элемент управления, в котором текст может отображаться и редактироваться.
Каждая кнопка, объект класса wx.RadioButton, несет текстовую метку рядом с круглой кнопкой. API wxPython также состоит из класса wx.RadioBox. Его объект предлагает границу и метку для группы.
Флажок отображает маленькую помеченную прямоугольную рамку. При нажатии внутри прямоугольника появляется галочка, указывающая, что выбор сделан.
Объект wx.ComboBox представляет список элементов для выбора. Он может быть настроен как выпадающий список или с постоянным отображением. API wxPython содержит класс wx.Choice, объект которого также является раскрывающимся списком, который постоянно доступен только для чтения.
Объект класса Wx.Gauge показывает вертикальную или горизонтальную полосу, которая графически показывает возрастающую величину.
API wxPython содержит класс wx.Slider. Он предлагает ту же функциональность, что и полоса прокрутки. Slider предлагает удобный способ обработки перетаскивания с помощью привязки событий wx.EVT_SLIDER для конкретного слайдера.
Горизонтальная полоса чуть ниже строки заголовка окна верхнего уровня зарезервирована для отображения серии меню. Это объект класса wx.MenuBar в API wxPython.
Если для параметра стиля объекта wx.Toolbar установлено значение wx.TB_DOCKABLE, он становится закрепляемым. Плавающая панель инструментов также может быть построена с использованием класса AUIToolBar wxPython.
Хотя объект класса Dialog выглядит как фрейм, он обычно используется как всплывающее окно поверх родительского фрейма. Целью диалога является сбор некоторых данных от пользователя и отправка их в родительский фрейм.
Виджет wx.Notebook представляет элемент управления с вкладками. Один объект Notebook в рамке имеет одну или несколько вкладок (называемых страницами), каждая из которых имеет панель, отображающую макет элементов управления.
Объект этого класса является менеджером макета, который содержит два подокна, размер которых можно динамически изменять, перетаскивая границы между ними. Элемент управления Splitter предоставляет ручку, которую можно перетаскивать для изменения размера элементов управления.
Библиотека wxHTML содержит классы для анализа и отображения содержимого HTML. Хотя это и не предназначено для полнофункционального браузера, объект wx.HtmlWindow является универсальным средством просмотра HTML.
Виджет wx.ListBox представляет вертикально прокручиваемый список строк. По умолчанию можно выбрать один элемент в списке. Виджет ListCtrl — сильно улучшенный инструмент отображения и выбора списка. Список из более чем одного столбца может быть отображен в виде отчета, списка или значка.