Hello StackOverflow Hive Mind;
Я нахожусь в процессе изучения того, как использовать wxPython, который создает GUI для приложения, которое я пишу. Я пробирался через это достаточно хорошо, пока не заметил, что не могу правильно создать строку меню. Все, что я делаю неправильно, заставляет мои привязки событий выполняться при запуске программы. Вот код, о котором идет речь. Незначительные опечатки следует игнорировать, я перепечатываю это с моей машины для разработки, которая находится в автономном режиме, поэтому я могу пропустить ключ здесь или там.
def onDocClick():
message = wx.MessageBox("did it work?","Question",wx.YES_NO)
def onAboutClick():
pass
frame = wx.Frame(parent=None,title="RVR GUI",size=(315,490))
frame.Show()
panel = wx.Panel(frame,-1,size=(315,490)
menubar = wx.MenuBar()
fileMenu = wx.Menu()
documentation = fileMenu.Append(wx.ID_NEW,"Documentation")
about = fileMenu.Append(wx.ID_ABOUT,"About")
menuBar.Append(fileMenu,'File')
frame.SetMenuBar(menubar)
menubar.Bind(wx.EVT_MENU,onDocClick(),documentation)
menubar.Bind(wx.EVT_MENU,onAboutClick(),about)
Существует гораздо больше GUI, но остальная часть кода работает нормально, поэтому я не думаю, что вам это нужно. В основном происходит то, что окно сообщения в onDocClick () выполняется, как только я запускаю скрипт, который открывает графический интерфейс. Один раз, когда я нажимаю кнопку amy, остальная часть графического интерфейса инициализируется нормально, а нажатие на пункт меню «Документация» не видит абсолютно ничего. У меня такое чувство, что я, вероятно, упускаю что-то простое, возможно, wx.EVT_MENU не подходит для использования в этой ситуации? Если это так, что будет правильным для использования? Каждый учебник, который я видел на wxPython, делал это без объяснений. Честно говоря, я был потрясен отсутствием значимой документации для wxPython. Учебные пособия по Zetcode и даже всегда полезная мышь против Python, кажется, просто излагают основы работы инструментария. Но я отвлекся, и я справлялся, я просто был озадачен этим. В любом случае спасибо, и я ценю любые отзывы!
Michael