wx.App¶
The wx.App
class represents the application and is used to:
bootstrap the wxPython system and initialize the underlying gui toolkit
set and get application-wide properties
implement the native windowing system main message or event loop, and to dispatch events to window instances
etc.
Every wx application must have a single wx.App
instance, and all
creation of UI objects should be delayed until after the wx.App
object
has been created in order to ensure that the gui platform and wxWidgets
have been fully initialized.
Normally you would derive from this class and implement an OnInit
method that creates a frame and then calls self.SetTopWindow(frame)
,
however wx.App
is also usable on its own without derivation.
Note
In Python the wrapper for the C++ class wxApp
has been renamed tp
wx.PyApp
. This wx.App
class derives from wx.PyApp
, and is
responsible for handling the Python-specific needs for bootstrapping the
wxWidgets library and other Python integration related requirements.
Class Hierarchy¶
Methods Summary¶
Construct a |
|
A staticmethod returning the currently active application object. |
|
Starting with version 3.8 on Windows, Python is now setting the locale |
|
Execute the main GUI event loop |
|
Things that must be done after _BootstrapApp has done its thing, but |
|
Redirect sys.stdout and sys.stderr to a file or a popup window. |
|
This method is now a |
|
Set the title, position and/or size of the output window if the stdio |
|
Set the “main” top level window, which will be used for the parent of |
|
Class API¶
- class wx.App(PyApp)¶
The
wx.App
class represents the application and is used to:bootstrap the wxPython system and initialize the underlying gui toolkit
set and get application-wide properties
implement the native windowing system main message or event loop, and to dispatch events to window instances
etc.
Every wx application must have a single
wx.App
instance, and all creation of UI objects should be delayed until after thewx.App
object has been created in order to ensure that the gui platform and wxWidgets have been fully initialized.Normally you would derive from this class and implement an
OnInit
method that creates a frame and then callsself.SetTopWindow(frame)
, howeverwx.App
is also usable on its own without derivation.Note
In Python the wrapper for the C++ class
wxApp
has been renamed tpwx.PyApp
. Thiswx.App
class derives fromwx.PyApp
, and is responsible for handling the Python-specific needs for bootstrapping the wxWidgets library and other Python integration related requirements.
Methods¶
- __init__(self, redirect=False, filename=None, useBestVisual=False, clearSigInt=True)¶
Construct a
wx.App
object.- Parameters:
redirect – Should
sys.stdout
andsys.stderr
be redirected? Defaults to False. Iffilename
is None then output will be redirected to a window that pops up as needed. (You can control what kind of window is created for the output by resetting the class variableoutputWindowClass
to a class of your choosing.)filename – The name of a file to redirect output to, if redirect is True.
useBestVisual – Should the app try to use the best available visual provided by the system (only relevant on systems that have more than one visual.) This parameter must be used instead of calling
SetUseBestVisual
later on because it must be set before the underlying GUI toolkit is initialized.clearSigInt – Should SIGINT be cleared? This allows the app to terminate upon a Ctrl-C in the console like other GUI apps will.
Note
You should override OnInit to do application initialization to ensure that the system, toolkit and wxWidgets are fully initialized.
- static Get()¶
A staticmethod returning the currently active application object. Essentially just a more pythonic version of
GetApp
.
- InitLocale(self)¶
Starting with version 3.8 on Windows, Python is now setting the locale to what is defined by the system as the default locale. This causes problems with wxWidgets which expects to be able to manage the locale via the wx.Locale class, so the locale will be reset here to be the default “C” locale settings.
If you have troubles from the default behavior of this method you can override it in a derived class to behave differently. Please report the problem you encountered.
- MainLoop(self)¶
Execute the main GUI event loop
- OnPreInit(self)¶
Things that must be done after _BootstrapApp has done its thing, but would be nice if they were already done by the time that OnInit is called. This can be overridden in derived classes, but be sure to call this method from there.
- RedirectStdio(self, filename=None)¶
Redirect sys.stdout and sys.stderr to a file or a popup window.
- ResetLocale(self)¶
This method is now a NOP and will be deprecated.
- RestoreStdio(self)¶
- SetOutputWindowAttributes(self, title=None, pos=None, size=None)¶
Set the title, position and/or size of the output window if the stdio has been redirected. This should be called before any output would cause the output window to be created.
- SetTopWindow(self, frame)¶
Set the “main” top level window, which will be used for the parent of the on-demand output window as well as for dialogs that do not have an explicit parent set.
- __del__(self)¶