title: Qt - Temporarily disable all events or window functionality?
body: <p>I have a Qt program with many buttons, user-interactable widgets, etc.<br>
  At one stage in the program, I would like all the widgets to temporarily 'stop working'; stop behaving to mouse clicks and instead pass the event on to one function.</p>
  
  <p>(This is so the User can select a widget to perform meta operations. Part explanation here:         <a href="https://stackoverflow.com/questions/8983345/get-variable-name-of-qt-widget-for-use-in-stylesheet/8983694#8983694">Get variable name of Qt Widget (for use in Stylesheet)?</a> )</p>
  
  <p>The User would pick a widget (to do stuff with) by clicking it, and of course clicking a button must not cause the button's bound function to run.</p>
  
  <p>What is the correct (most abstracted, sensible) method of doing this?<br>
  (which doesn't involve too much new code. ie; not subclassing every widget)<br>
  Is there anything in Qt designed for this?</p>
  
  <p>So far, I am able to retrieve a list of all the widgets in the program (by calling  </p>
  
  <pre><code>QObject.findChildren(QtGui.QWidget)
  </code></pre>
  
  <p>so the solution can incorporate this.</p>
  
  <p>My current horrible ideas are;  </p>
  
  <ul>
  <li>Some how dealing with all the applications events all the time in one
  function and not letting through the events when I need the
  application to be dormant.</li>
  <li>When I need dormancy, make a new transparent widget which recieves
  mouse clicks and stretch it over the entire window. Take coordinates
  of click and figure out the widget underneath.</li>
  <li>Somehow create a new 'shell' instance of the window.</li>
  </ul>
  
  <p>THANKS!<br>
  (Sorry for the terrible write-up; in a slight rush)</p>
  
  <hr>
  
  <p>python 2.7.2<br>
  PyQt4<br>
  Windows 7</p>