This class makes it easy to tell your user that the program is temporarily busy.
Just create a wx.BusyInfo object on the stack, and within the current scope, a message window will be shown.
For example:
wait = wx.BusyInfo("Please wait, working...")
for i in xrange(10000):
DoACalculation()
del wait
It works by creating a window in the constructor, and deleting it in the destructor.
You may also want to call TheApp.Yield() to refresh the window periodically (in case it had been obscured by other windows, for example) like this:
disableAll = wx.WindowDisabler()
wait = wx.BusyInfo("Please wait, working...")
for i in xrange(10000):
DoACalculation()
if i % 1000 == 0:
wx.GetApp().Yield()
del wait
but take care to not cause undesirable reentrancies when doing it (see wx.App.Yield
for more details). The simplest way to do it is to use wx.WindowDisabler class as illustrated in the above example.
Note that a wx.BusyInfo is always built with the STAY_ON_TOP
window style (see wx.Frame window styles for more info).
__init__ |
Constructs a busy info window as child of parent and displays msg in it. |
__enter__ |
|
__exit__ |
wx.
BusyInfo
(object)¶Possible constructors:
BusyInfo(msg, parent=None)
This class makes it easy to tell your user that the program is temporarily busy.
__init__
(self, msg, parent=None)¶Constructs a busy info window as child of parent and displays msg in it.
Parameters: |
|
---|
Note
If parent is not None
you must ensure that it is not closed while the busy info is shown.
__enter__
(self)¶__exit__
(self, exc_type, exc_val, exc_tb)¶