[파이썬] wxPython `wx.Menu` & `wx.MenuBar`: 메뉴와 메뉴바

Menus and menu bars are commonly used in GUI applications to provide easy access to various commands and options. They typically contain a list of items, each of which can be selected by the user to perform a specific action.

Let’s start with the wx.Menu class. This class represents a single menu and can contain multiple menu items. To create a menu, we first need to create an instance of the wx.Menu class using the wx.Menu() constructor:

menu = wx.Menu()

To add menu items to the menu, we can use the Append method. For example, to add a simple menu item with the label “Open”, we can use the following code:

menu.Append(wx.ID_OPEN, "Open")

Here, wx.ID_OPEN is a predefined identifier in wxPython that represents the “Open” command. We can also add a submenu to a menu item by passing another wx.Menu instance as the second argument to the Append method:

submenu = wx.Menu()
submenu.Append(wx.ID_SAVE, "Save")
menu.AppendSubMenu(submenu, "File")

Once we have created our menu, we can associate it with a specific window using the SetMenuBar method. For example, to set the menu as the menu bar of a frame, we can use the following code:

frame.SetMenuBar(menuBar)

Now, let’s move on to the wx.MenuBar class. This class represents a menu bar, which is typically located at the top of a window and contains multiple menus. To create a menu bar, we first need to create an instance of the wx.MenuBar class using the wx.MenuBar() constructor:

menuBar = wx.MenuBar()

To add menus to the menu bar, we can use the Append method. For example, to add the previously created wx.Menu instance to the menu bar, we can use the following code:

menuBar.Append(menu, "File")

Here, “File” is the label that will be displayed for the menu.

Finally, we need to associate the menu bar with a specific window by using the SetMenuBar method, just like we did with the menu:

frame.SetMenuBar(menuBar)

With these simple steps, we can create menus and menu bars in our wxPython applications to provide an intuitive and user-friendly interface.

In this blog post, we learned how to use the wx.Menu and wx.MenuBar classes in wxPython to create menus and menu bars. We saw how to create menus, add menu items, and associate them with a window. With this knowledge, you can now enhance the functionality of your wxPython applications by adding menus and menu bars to provide an efficient and user-friendly interface.