.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.App:

==========================================================================================================================================
|phoenix_title|  **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
    :class:`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| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>App</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.App_inheritance.png" alt="Inheritance diagram of App" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.App.html" title="wx.App" alt="" coords="142,237,214,267"/> <area shape="rect" id="node2" href="wx.AppConsole.html" title="wx.AppConsole" alt="" coords="117,160,239,189"/> <area shape="rect" id="node3" href="wx.EvtHandler.html" title="wx.EvtHandler" alt="" coords="50,83,167,112"/> <area shape="rect" id="node4" href="wx.EventFilter.html" title="wx.EventFilter" alt="" coords="191,83,306,112"/> <area shape="rect" id="node5" href="wx.Object.html" title="wx.Object" alt="" coords="5,5,92,35"/> <area shape="rect" id="node6" href="wx.Trackable.html" title="wx.Trackable" alt="" coords="117,5,223,35"/> </map> 
   </p>
   </div>

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.App.__init__`                                                         Construct a ``wx.App`` object.
:meth:`~wx.App.Get`                                                              A staticmethod returning the currently active application object.
:meth:`~wx.App.InitLocale`                                                       Starting with version 3.8 on Windows, Python is now setting the locale
:meth:`~wx.App.MainLoop`                                                         Execute the main GUI event loop
:meth:`~wx.App.OnPreInit`                                                        Things that must be done after _BootstrapApp has done its thing, but
:meth:`~wx.App.RedirectStdio`                                                    Redirect sys.stdout and sys.stderr to a file or a popup window.
:meth:`~wx.App.ResetLocale`                                                      This method is now a ``NOP`` and will be deprecated.
:meth:`~wx.App.RestoreStdio`                                                     
:meth:`~wx.App.SetOutputWindowAttributes`                                        Set the title, position and/or size of the output window if the stdio
:meth:`~wx.App.SetTopWindow`                                                     Set the "main" top level window, which will be used for the parent of
:meth:`~wx.App.__del__`                                                          
================================================================================ ================================================================================


|


|api| 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 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
       :class:`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.
               



   .. method:: __init__(self, redirect=False, filename=None, useBestVisual=False, clearSigInt=True)

      Construct a ``wx.App`` object.

      :param redirect: Should ``sys.stdout`` and ``sys.stderr`` be
          redirected?  Defaults to False. If ``filename`` 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 variable
          ``outputWindowClass`` to a class of your choosing.)

      :param filename: The name of a file to redirect output to, if
          redirect is True.

      :param 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.

      :param 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.
                    





   .. staticmethod:: Get()

      A staticmethod returning the currently active application object.
      Essentially just a more pythonic version of :meth:`GetApp`.





   .. method:: 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.
                    





   .. method:: MainLoop(self)

      Execute the main GUI event loop





   .. method:: 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.
                    





   .. method:: RedirectStdio(self, filename=None)

      Redirect sys.stdout and sys.stderr to a file or a popup window.





   .. method:: ResetLocale(self)

      This method is now a NOP and will be deprecated.
                    





   .. method:: RestoreStdio(self)






   .. method:: 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.
                    





   .. method:: 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.
                    





   .. method:: __del__(self)





