wxPython 2.8 Application Development Cookbook

Over 80 practical recipes for developing feature-rich applications using wxPython

wxPython 2.8 Application Development Cookbook

Cookbook
Cody Precord

Over 80 practical recipes for developing feature-rich applications using wxPython
$10.00
$39.99
RRP $23.99
RRP $39.99
eBook
Print + eBook
$12.99 p/month

Want this title & more? Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.
+ Collection
Free sample

Book Details

ISBN 139781849511780
Paperback308 pages

About This Book

  • Develop flexible applications in wxPython.
  • Create interface translatable applications that will run on Windows, Macintosh OSX, Linux, and other UNIX like environments.
  • Learn basic and advanced user interface controls.
  • Packed with practical, hands-on cookbook recipes and plenty of example code, illustrating the techniques to develop feature rich applications using wxPython.

Who This Book Is For

This book is written for python programmers wanting to develop GUI applications. Basic knowledge of Python is required.

Table of Contents

Chapter 1: Getting Started with wxPython
Introduction
The application object
The main frame
Understanding the window hierarchy
Referencing controls
Using Bitmaps
Adding icons to Windows
Utilizing Stock IDs
Accessing the clipboard
Supporting drag and drop
Two-stage widget creation
Understanding inheritance limitations
Chapter 2: Responding to Events
Introduction
Handling events
Understanding event propagation
Handling Key events
Using UpdateUI events
Playing with the mouse
Creating custom event classes
Managing event handlers with EventStack
Validating input with validators
Handling Apple events
Chapter 3: Basic Building Blocks of a User Interface
Introduction
Creating Stock Buttons
Buttons, buttons, and more buttons
Offering options with CheckBoxes
Using the TextCtrl
Providing choices with the Choice control
Adding Menus and MenuBars
Working with ToolBars
How to use PopupMenus
Grouping controls with a StaticBox
Chapter 4: Advanced Building Blocks of a User Interface
Introduction
Listing data with a ListCtrl
Browsing files with the CustomTreeCtrl
Creating a VListBox
StyledTextCtrl using lexers
Working with tray icons
Adding tabs to a Notebook
Using the FlatNotebook
Scrolling with a ScrolledPanel
Simplifying the FoldPanelBar
Chapter 5: Providing Information and Alerting Users
Introduction
Showing a MessageBox
Providing help with ToolTips
Using SuperToolTips
Displaying a BalloonTip
Creating a custom SplashScreen
Showing task progress with the Progress dialog
Creating an AboutBox
Chapter 6: Retrieving Information from Users
Introduction
Selecting files with a FileDialog
Searching text with a FindReplaceDialog
Getting images with ImageDialog
Using the Print dialogs
Chapter 7: Window Layout and Design
Introduction
Using a BoxSizer
Understanding proportions, flags, and borders
Laying out controls with the GridBagSizer
Standard dialog button layout
Using XML resources
Making a custom resource handler
Using the AuiFrameManager
Chapter 8: Drawing to the Screen
Introduction
Screen drawing
Drawing shapes
Utilizing SystemSettings
Using a GraphicsContext
Drawing with RendererNative
Reducing flicker in drawing routines
Chapter 9: Design Approaches and Techniques
Introduction
Creating Singletons
Implementing an observer pattern
Strategy pattern
Model View Controller
Using mixin classes
Using decorators
Chapter 10: Creating Components and Extending Functionality
Introduction
Customizing the ArtProvider
Adding controls to a StatusBar
Making a tool window
Creating a SearchBar
Working with ListCtrl mixins
StyledTextCtrl custom highlighting
Creating a custom control
Chapter 11: Using Threads and Timers to Create Responsive Interfaces
Introduction
Non-Blocking GUI
Understanding thread safety
Threading tools
Using Timers
Capturing output
Chapter 12: Building and Managing Applications for Distribution
Introduction
Working with StandardPaths
Persisting the state of the UI
Using the SingleInstanceChecker
Exception handling
Optimizing for OS X
Supporting internationalization
Distributing an application

What You Will Learn

  • Set up the wx main frame by adding your own Frame class to the application
  • Create two stage widgets by using a three step process
  • Set up an event handler, customize, receive and handle events by using custom controls and event propagation
  • Create tooltips with rich content and add tooltips to controls
  • Retrieve information from users using common Dialogs
  • Enhance design and layout, hide and show controls dynamically during runtime by using sizers
  • Create a custom XRC resource handler class to use custom widget classes in XRC
  • Simplify window layout using the SizedControls library
  • Draw basic shapes in a Device Context and draw gradients with ease by using a GraphicsContext
  • Design a custom dialog class
  • Make multi-threaded wxPython applications
  • Capture output from other applications and display it in a wxPython GUI
  • Access platform specific application and resource directories using wxStandardPaths
  • Embed images into python files using wxPython's embedded image tool and classes
  • Add robust exception handling to an application
  • Bundle a wxPython application for distribution making your applications interface translatable

In Detail

In today’s world of desktop applications there is a great amount of incentive to be able to develop applications that can run in more than one environment. Currently there are a handful of options available for cross platform frameworks to develop desktop applications in Python. wxPython is one such cross- platform GUI toolkit for the Python programming language. It allows Python programmers to create programs with a complete, highly functional graphical user interface, simply and easily. wxPython code style has changed quite a bit over the years, and gotten much more Pythonic. The examples you will find in this book are right up to date and reflect this change in style.
This cookbook provides you with the latest recipes to quickly create robust, reliable, and reusable wxPython applications. These recipes will guide you from writing simple, basic wxPython scripts all the way through complex concepts, and also feature various design approaches and techniques in wxPython.

The book starts off by covering a variety of topics from the most basic requirements of a wxPython application to some of the more in depth details of the inner workings of the framework laying the foundation for any wxPython application. It then explains event handling, basic and advanced user interface controls, designing and layout, creating dialogs, components and extending functionality, and so on. We conclude by learning how to build and manage applications for distribution.
For each of the recipes, there is an introductory example, then more advanced examples, and plenty of example code to develop and manage user-friendly applications. For more experienced developers, most recipes also include additional discussion of the solution, allowing you to further customize and enhance the component.

Authors

Table of Contents

Chapter 1: Getting Started with wxPython
Introduction
The application object
The main frame
Understanding the window hierarchy
Referencing controls
Using Bitmaps
Adding icons to Windows
Utilizing Stock IDs
Accessing the clipboard
Supporting drag and drop
Two-stage widget creation
Understanding inheritance limitations
Chapter 2: Responding to Events
Introduction
Handling events
Understanding event propagation
Handling Key events
Using UpdateUI events
Playing with the mouse
Creating custom event classes
Managing event handlers with EventStack
Validating input with validators
Handling Apple events
Chapter 3: Basic Building Blocks of a User Interface
Introduction
Creating Stock Buttons
Buttons, buttons, and more buttons
Offering options with CheckBoxes
Using the TextCtrl
Providing choices with the Choice control
Adding Menus and MenuBars
Working with ToolBars
How to use PopupMenus
Grouping controls with a StaticBox
Chapter 4: Advanced Building Blocks of a User Interface
Introduction
Listing data with a ListCtrl
Browsing files with the CustomTreeCtrl
Creating a VListBox
StyledTextCtrl using lexers
Working with tray icons
Adding tabs to a Notebook
Using the FlatNotebook
Scrolling with a ScrolledPanel
Simplifying the FoldPanelBar
Chapter 5: Providing Information and Alerting Users
Introduction
Showing a MessageBox
Providing help with ToolTips
Using SuperToolTips
Displaying a BalloonTip
Creating a custom SplashScreen
Showing task progress with the Progress dialog
Creating an AboutBox
Chapter 6: Retrieving Information from Users
Introduction
Selecting files with a FileDialog
Searching text with a FindReplaceDialog
Getting images with ImageDialog
Using the Print dialogs
Chapter 7: Window Layout and Design
Introduction
Using a BoxSizer
Understanding proportions, flags, and borders
Laying out controls with the GridBagSizer
Standard dialog button layout
Using XML resources
Making a custom resource handler
Using the AuiFrameManager
Chapter 8: Drawing to the Screen
Introduction
Screen drawing
Drawing shapes
Utilizing SystemSettings
Using a GraphicsContext
Drawing with RendererNative
Reducing flicker in drawing routines
Chapter 9: Design Approaches and Techniques
Introduction
Creating Singletons
Implementing an observer pattern
Strategy pattern
Model View Controller
Using mixin classes
Using decorators
Chapter 10: Creating Components and Extending Functionality
Introduction
Customizing the ArtProvider
Adding controls to a StatusBar
Making a tool window
Creating a SearchBar
Working with ListCtrl mixins
StyledTextCtrl custom highlighting
Creating a custom control
Chapter 11: Using Threads and Timers to Create Responsive Interfaces
Introduction
Non-Blocking GUI
Understanding thread safety
Threading tools
Using Timers
Capturing output
Chapter 12: Building and Managing Applications for Distribution
Introduction
Working with StandardPaths
Persisting the state of the UI
Using the SingleInstanceChecker
Exception handling
Optimizing for OS X
Supporting internationalization
Distributing an application

Book Details

ISBN 139781849511780
Paperback308 pages
Read More