Two-stage widget creation is a way of initialzing a widget and then its UI part, in two steps. This method of object creation is used by class factories such as XRC (XML Resource) and to set extra style flags that cannot be set by using the constructor's regular style parameter. This recipe will show how to use two-stage creations to create a frame that has a special button that can be used to put it into a context-sensitive help mode.
Note
This is a Windows-specific example; other platforms do not support having a ContextButton
in their title bar.
Here we will create a Frame
subclass that uses two stage creation in order to set an extra style flag:
In wxPython, two-stage widget creation is actually a three-step process. First, each class that supports it has its own PreClass
that is used as a factory constructor that pre-creates the object. At this point, the pre object can be used to set the extra style flag. The next step is to call Create
. Create
acts like the regular constructor and creates the UI portion of the control. The final step is to call PostCreate
, PostCreate
does the work of translating the pre
object into self
so that the object will appear just as if the class's __init__
method had been called normal.
The Using XRC recipe in Chapter 7, Window Layout and Design discusses XRC.