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.
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.