Search code examples
pythonpyqt

PyQt: Always on top


This is on PyQt4, Linux and Python 2.5

Can I make PyQt set my window "always on top" over other applications?

For example, in GTK i use the property: Modal.

Now, in PyQt I am using a QWidget, but, I can't find a way to do that.

Any ideas??


Solution

  • Pass the QMainWindow the WindowStaysOnTopHint window flag (or use setWindowFlags).

    As in the name, this is a hint to the windowing manager (not a hard guarantee).

    Simplest possible example:

    import sys
    from PyQt4 import QtGui, QtCore
    
    class mymainwindow(QtGui.QMainWindow):
        def __init__(self):
            QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)
    
    app = QtGui.QApplication(sys.argv)
    mywindow = mymainwindow()
    mywindow.show()
    app.exec_()