'Automatically view IPython console in Spyder

I am using Python 3.8 in Spyder. The graphics backend of the IPython console is set to 'automatic'. When I call the IPython Console with a Python algorithm, the window is minimized, so I have to click on it at the taskbar to see it. However, this only happens the first time when I run the algorithm. If I run the algorithm once, click on the window from the taskbar, and then close it, then the next time that I run the algorithm the IPython console is immediately visible. It continues to work fine, but when I restart the kernel I get the same problem again. Here is a MWE:

import matplotlib.pyplot as plt
fig = plt.figure()

How can I make sure that the IPython console always is maximized automatically, even when I run the algorithm for the first time? I am using Python 3.8 in Spyder.



Solution 1:[1]

It can be done using win32gui:

import win32gui, win32com.client
import matplotlib.pyplot as plt
fig = plt.figure()

def Set_to_foreground( hwnd, ctx ):
    if win32gui.IsWindowVisible( hwnd ):
    #The IPython Console will usually have the title 'Figure 1'
        if win32gui.GetWindowText(hwnd)=='Figure 1':
            IPython_console=hwnd
            shell = win32com.client.Dispatch("WScript.Shell")
            shell.SendKeys('%')
            win32gui.SetForegroundWindow(IPython_console)

win32gui.EnumWindows( Set_to_foreground, None )

Note that this only works if no other windows called 'Figure 1' are opened.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Riemann