Home arrow Python arrow Page 4 - A Look at wxPython

Creating Menus - Python

This article is the first in a series covering wxPython, a library that makes it easy for Python programmers to build graphical user interfaces. It introduces some simple dialogs, explains how to create a simple frame, how to create a menu, and how to add two basic controls to a panel.

TABLE OF CONTENTS:
  1. A Look at wxPython
  2. The Basics
  3. Creating Windows and Status Bars
  4. Creating Menus
  5. Events
  6. Some Widgets
By: Peyton McCullough
Rating: starstarstarstarstar / 23
June 22, 2005

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

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()



 
 
>>> More Python Articles          >>> More By Peyton McCullough
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PYTHON ARTICLES

- Python Big Data Company Gets DARPA Funding
- Python 32 Now Available
- Final Alpha for Python 3.2 is Released
- Python 3.1: String Formatting
- Python 3.1: Strings and Quotes
- Python 3.1: Programming Basics and Strings
- Tuples and Other Python Object Types
- The Dictionary Python Object Type
- String and List Python Object Types
- Introducing Python Object Types
- Mobile Programming using PyS60: Advanced UI ...
- Nested Functions in Python
- Python Parameters, Functions and Arguments
- Python Statements and Functions
- Statements and Iterators in Python

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: