Skip to content
Advertisement

How to make a PyQT4 window jump to the front?

I want to make a PyQT4 window(QtGui.QMainWindow) jump to the front when the application received a specified message from another machine. Usually the window is minimized.

I tried the raise_() and show() method but it doesn’t work.

Advertisement

Answer

This works:

# this will remove minimized status 
# and restore window with keeping maximized/normal state
window.setWindowState(window.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)

# this will activate the window
window.activateWindow()

Both are required for me on Win7.

setWindowState restores the minimized window and gives focus. But if the window just lost focus and not minimized, it won’t give focus.

activateWindow gives focus but doesn’t restore the minimized state.

Using both has the desired effect.

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement