You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
def blocking_input_loop(figure, event_names, timeout, handler):
 | 
						|
    """
 | 
						|
    Run *figure*'s event loop while listening to interactive events.
 | 
						|
 | 
						|
    The events listed in *event_names* are passed to *handler*.
 | 
						|
 | 
						|
    This function is used to implement `.Figure.waitforbuttonpress`,
 | 
						|
    `.Figure.ginput`, and `.Axes.clabel`.
 | 
						|
 | 
						|
    Parameters
 | 
						|
    ----------
 | 
						|
    figure : `~matplotlib.figure.Figure`
 | 
						|
    event_names : list of str
 | 
						|
        The names of the events passed to *handler*.
 | 
						|
    timeout : float
 | 
						|
        If positive, the event loop is stopped after *timeout* seconds.
 | 
						|
    handler : Callable[[Event], Any]
 | 
						|
        Function called for each event; it can force an early exit of the event
 | 
						|
        loop by calling ``canvas.stop_event_loop()``.
 | 
						|
    """
 | 
						|
    if figure.canvas.manager:
 | 
						|
        figure.show()  # Ensure that the figure is shown if we are managing it.
 | 
						|
    # Connect the events to the on_event function call.
 | 
						|
    cids = [figure.canvas.mpl_connect(name, handler) for name in event_names]
 | 
						|
    try:
 | 
						|
        figure.canvas.start_event_loop(timeout)  # Start event loop.
 | 
						|
    finally:  # Run even on exception like ctrl-c.
 | 
						|
        # Disconnect the callbacks.
 | 
						|
        for cid in cids:
 | 
						|
            figure.canvas.mpl_disconnect(cid)
 |