Another function in wx.MenuBar class is Replace()
function. If we ever want to replace a menu from menubar we use Replace() function. It takes three main parameters that is position of menu we want to replace, menu we want to add, title of new menu.
Syntax :
wx.MenuBar.Replace(self, pos, menu, title)Parameters :
Parameter Input Type Description pos int The position of the new menu in the menu bar menu wx.Menu The menu to add. The title of the menu. title string The menu to add.
Let’s create a window with two menu items Menu_one and Menu_two.
Code :
import wx class Example(wx.Frame): def __init__( self , * args, * * kw): super (Example, self ).__init__( * args, * * kw) # create MenuBar using MenuBar() function menubar = wx.MenuBar() # add menu to MenuBar fm1 = wx.Menu() fileitem = fm1.Append( 20 , "one" ) fm2 = wx.Menu() fileitem2 = fm2.Append( 20 , "two" ) menubar.Append(fm1, '&Menu_one' ) menubar.Append(fm2, '&Menu_two' ) self .SetMenuBar(menubar) self .SetSize(( 300 , 200 )) self .SetTitle( 'Menu Bar' ) def main(): app = wx.App() ex = Example( None ) ex.Show() app.MainLoop() if __name__ = = '__main__' : main() |
Window:
Now lets replace Menu_two with new_Menu.
Code for Replace :
import wx class Example(wx.Frame): def __init__( self , * args, * * kw): super (Example, self ).__init__( * args, * * kw) # create MenuBar using MenuBar() function menubar = wx.MenuBar() # add menu to MenuBar fm1 = wx.Menu() fileitem = fm1.Append( 20 , "one" ) fm2 = wx.Menu() fileitem2 = fm2.Append( 21 , "two" ) fm3 = wx.Menu() fileitem3 = fm3.Append( 22 , "new" ) menubar.Append(fm1, '&Menu_one' ) menubar.Append(fm2, '&Menu_two' ) self .SetMenuBar(menubar) self .SetSize(( 300 , 200 )) self .SetTitle( 'Menu Bar' ) menubar.Replace( 1 , fm3, "new_Menu" ) def main(): app = wx.App() ex = Example( None ) ex.Show() app.MainLoop() if __name__ = = '__main__' : main() |
Output :