Существует класс пользовательского интерфейса wxwidgets, который выглядит так:
class mainFrame ( wx.Frame ):
def __init__( self, parent ):
# Constructor code
# ...
# ...
# Virtual event handlers, overide them in your derived class
def about_click( self, event ):
event.Skip()
def search_perform( self, event ):
event.Skip()
def new_note_event( self, event ):
event.Skip()
def save_note_event( self, event ):
event.Skip()
Я могу напрямую создать экземпляр этого класса и заполнить заглушки событий, и он работает, но я уверен, что мне вообще не нужно изменять файл UI-кода, а использовать его как основу. класс.
Я пробовал использовать
class Main(mainFrame):
def __init__(self):
super(mainFrame, self).__init__(self, None)
Вышеуказанное не работает.
1 ответ
Сейчас это исправлено. Вызов super()
срабатывает . Когда я вместо этого ссылаюсь на родительский класс по имени, он работает.
Я использую класс пользовательского интерфейса следующим образом:
class Main(mainFrame):
def __init__(self):
mainFrame.__init__(self, None) # using super().__init__(self, None) fails
def about_click( self, event ):
print("AboutDialog")
def main():
app = wx.PySimpleApp(0)
frame = Main()
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
if __name__ == '__main__':
main()
super()
не работает для классов старого стиля. Он работает только для классов нового стиля которые наследуются либо от object
, либо от других классов нового стиля.
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.