Gestion des event sur un menu
Re-salut à toutes et à tous.
Tjs en pleine découverte de wx, je m'amuse à présent avec les menus.
De ce que j'ai compris, il faut assigner un ID unique à chaque MenuItem pour pouvoir les reconnaître et gérer les clicks et autres.
Leur exemple est le suivant (à défaut d'en avoir fait un moi-même):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| ID_ABOUT = 101
ID_EXIT = 102
class MyFrame(wxFrame):
def __init__(self, parent, ID, title):
(...)
menu = wxMenu()
menu.Append(ID_ABOUT, "&About",
"More information about this program")
menu.AppendSeparator()
menu.Append(ID_EXIT, "E&xit", "Terminate the program")
menuBar = wxMenuBar()
menuBar.Append(menu, "&File");
self.SetMenuBar(menuBar)
EVT_MENU(self, ID_ABOUT, self.OnAbout)
EVT_MENU(self, ID_EXIT, self.TimeToQuit)
(...) |
Mais je trouve ça horrible !
Dans le sens qu'on est obligés de définir un ID par élément de menu, et de s'assurer qu'il soit unique. Atroce !
N'y a-t-il pas un moyen ressemblant plutôt à celui-ci ? Ca m'éviterait de devoir créer une sorte de gestionnaire d'id de menu...
Code:
1 2 3 4 5
| menu = wx.Menu()
miAbout = wx.MenuItem("&About", "More information about this program")
miExit = wx.MenuItem("&Exit", "Exit")
EVT_MENUITEM_LEFT_UP(miAbout, self.OnAbout)
EVT_MENUITEM_LEFT_UP(miExit, self.TimeToQuit) |