One of the uses of a status bar is to display details about a certain menu option. Let's create a menu for our window. Our menu bar will contain two categories: One and Two. They will each have four options: 1, 2, 3 and 4 and A, B, C and D, respectively. Let's bring our plan to life: from wxPython.wx import * application = wxPySimpleApp() window = wxFrame ( None, wxID_ANY, 'Title Here.' ) window.CreateStatusBar() # Create "One" and fill it with the options one = wxMenu() one.Append ( 100, '1', 'This text will display in the status bar.' ) one.Append ( 101, '2', 'So will this.' ) one.Append ( 102, '3', 'Option three.' ) one.Append ( 103, '4', 'Option four.' ) one.AppendSeparator() one.Append ( 104, '5', 'This is isolated from the rest.' ) # Create "Two" and fill it with the options two = wxMenu() two.Append ( 105, 'A', 'A.' ) two.Append ( 106, 'B', 'B.' ) two.Append ( 107, 'C', 'C.' ) two.Append ( 108, 'D', 'D.' ) two.Append ( 109, 'E', 'E.' ) # Now, we'll add the menu bar and put in the two categories bar = wxMenuBar() bar.Append ( one, 'One' ) bar.Append ( two, 'Two' ) # Finally, we'll put in the menu bar window.SetMenuBar ( bar ) window.Show ( True ) application.MainLoop() Adding a menu isn't very hard, is it? The only thing I would like to point out here is the numbers you see passed to Append. Each menu option must have its own unique number, or the menu will not function properly. If we want to make our menu more complex, we can do so. Execute this code for something more advanced than our last example: from wxPython.wx import * application = wxPySimpleApp() window = wxFrame ( None, wxID_ANY, 'Title Here.' ) window.CreateStatusBar() # Create a top-level menu parent = wxMenu() # Create a child menu that will be added to the parent menu child = wxMenu() child.Append ( 100, 'Option 1', 'Option 1.' ) child.Append ( 101, 'Option 2', 'Option 2.' ) # Add the child menu to the parent menu parent.AppendMenu ( 102, '&Child\tShift C', child ) # Add another menu # This menu will contain items that work like radio boxes radio = wxMenu() radio.Append ( 103, 'First', 'First.', wxITEM_RADIO ) radio.Append ( 104, 'Second', 'Second.', wxITEM_RADIO ) # Add yet another menu # The options in this menu will behave like checkboxes check = wxMenu() check.Append ( 105, 'Former', 'Former.', wxITEM_CHECK ) check.Append ( 106, 'Latter', 'Latter.', wxITEM_CHECK ) # Create a menu bar bar = wxMenuBar() bar.Append ( parent, 'Parent' ) bar.Append ( radio, 'Radio' ) bar.Append ( check, 'Check' ) window.SetMenuBar ( bar ) window.Show ( True ) application.MainLoop()
|
|
|
|
|
|
|
|