wxPython 2.8 Application Development Cookbook
Formats:
save 15%!
save 37%!
Free Shipping!
| Also available on: |
|
- 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.
Book Details
Language : EnglishPaperback : 308 pages [ 235mm x 191mm ]
Release Date : December 2010
ISBN : 1849511780
ISBN 13 : 9781849511780
Author(s) : Cody Precord
Topics and Technologies : All Books, Cookbooks, Open Source, Python
Table of Contents
PrefaceChapter 1: Getting Started with wxPython
Chapter 2: Responding to Events
Chapter 3: Basic Building Blocks of a User Interface
Chapter 4: Advanced Building Blocks of a User Interface
Chapter 5: Providing Information and Alerting Users
Chapter 6: Retrieving Information from Users
Chapter 7: Window Layout and Design
Chapter 8: Drawing to the Screen
Chapter 9: Design Approaches and Techniques
Chapter 10: Creating Components and Extending Functionality
Chapter 11: Using Threads and Timers to Create Responsive Interfaces
Chapter 12: Building and Managing Applications for Distribution
Index
- 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
Cody Precord
Code Downloads
Download the code and support files for this book.
Submit Errata
Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.
Errata
- 5 submitted: last submission 11 Sep 2012Errata type: Others | Page number: 38
Our TextFrame class has three menu items in its Edit Menu that will be managed by our OnUpdateUI event handler. In OnUpdateUI, ....... should be: Our TextFrame class has three menu items in its Edit Menu that will be managed by our OnUpdateEditMenu event handler. In OnUpdateEditMenu, ......
Errata type: Code | Page number: 196
elif evt_id == wx.ID_OK: appears twice. The second appearance should be elif evt_id == wx.ID_CANCEL:
Errata type: Typo | Page number: 168
Original:
"""
super(SlideShowPanel, self).__init__(parent)
"""
Revise to: (corrected version)
"""
super(ImageCanvas, self).__init__(parent)
"""
Errata type: Code | Page number: 13
The sample code on Page 13 should be updated as follows (change Frame to Panel and add '.panel')
Original:
"""
print "\nFrame GetChildren:"
for child in self.GetChildren():
"""
Revised:
"""
print "\nPanel GetChildren:"
for child in self.panel.GetChildren():
Errata type: Code | Page numbers: 243
The line: return self.funct(*args, **kwargs)
should be replaced by: return funct(*args, **kwargs)
Sample chapters
You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.
- 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 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.
Quickly create robust, reliable, and reusable wxPython applications
Written in cookbook style, this book offers learning and techniques through recipes. It contains step-by-step instructions for developers who want to build feature-rich desktop applications in wxPython. The book is designed in such a way that you can refer to things chapter by chapter, and read them in no particular order.
This book is written for python programmers wanting to develop GUI applications. Basic knowledge of Python is required.

