Причина, по которой большинство кода в wxPython помещается в классы, заключается в том, что бы сделать код более модульным. Для этого виджеты, связанные с фреймом, помещаются в класс frame, а виджеты, сгруппированные в панель, – в класс panel.
Немного обновим нашу первую программу, чтобы в ней теперь использовались классы:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super().__init__(parent, title=title)
app = wx.App()
frm = MyFrame(None, 'Привет, мир АЛГОТРЕЙДИНГА! с классами))')
frm.Show()
app.MainLoop()
В этом примере мы создали подкласс wx.Frame и назвали его MyFrame. Затем
настраиваем наш класс. При создании нового объекта класса срабатывает метод __init__ , в который передаем параметр родительского окна и название. Используем функцию super(), которая возвращает ссылку на базовый класс и через нее мы вызываем метод __init__ .
Вновь создаем объект – приложение: app = wx.App
Создаем фрейм – объект нашего класса MyFrame и делаем его видимым Show().
Создание приложения, как и раньше, находится в конце кода.
И вновь все работает