How to make a PyQT4 window jump to the front?

pyqt4, python

Solution

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.

Problem

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.

Original source

Related problems