This variant of the debugger implements a threaded Qt debugger client
    by subclassing all relevant base classes.
        
            | Methods |  | 
        
        | __init__ attachThread
 eventLoop
 lockClient
 setCurrentThread
 set_quit
 threadTerminated
 unlockClient
 
 | 
            |  | __init__ | 
        
        | 
__init__ ( self )
 Constructor | 
            |  | attachThread | 
        
        | 
attachThread (
        self,
        target=None,
        args=None,
        kwargs=None,
        mainThread=0,
        )
Public method to setup a thread for DebugClient to debug.        If mainThread is non-zero, then we are attaching to the already 
        started mainthread of the app and the rest of the args are ignored.         Arguments
            targetthe start function of the target thread (i.e. the user code)            argsarguments to pass to target            kwargskeyword arguments to pass to target            mainThreadnon-zero, if we are attaching to the already 
              started mainthread of the app         Returns            The identifier of the created thread | 
            |  | eventLoop | 
        
        | 
eventLoop ( self )
 Private method implementing our event loop. | 
            |  | lockClient | 
        
        | 
lockClient ( self )
 Public method to acquire the lock for this client. | 
            |  | setCurrentThread | 
        
        | 
setCurrentThread ( self,  id )
 Private method to set the current thread.        Arguments
            idthe id the current thread should be set to. | 
            |  | set_quit | 
        
        | 
set_quit ( self )
 Private method to do a setquit on all threads. | 
            |  | threadTerminated | 
        
        | 
threadTerminated ( self,  dbgThread )
 Public method called when a DebugThread has exited.        Arguments
            dbgThreadthe DebugThread that has exited | 
            |  | unlockClient | 
        
        | 
unlockClient ( self )
 Public method to release the lock for this client. |