mRt
mRt

Reputation: 1223

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

Upvotes: 34

Views: 47897

Answers (3)

Tushar
Tushar

Reputation: 1104

For both frameless window(no header) and Always on top.
USE: setWindowFlags(QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.FramelessWindowHint)

NOTE: If you try to set as individually window flags, then frameless window won't work.
E.g: Below code won't result in frameless and Always on Top window

self.setWindowFlags(Qt.FramelessWindowHint)
self.setWindowFlags(Qt.WindowStaysOnTopHint)

Upvotes: 2

ChristopheD
ChristopheD

Reputation: 116157

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_()

Upvotes: 42

Abdo
Abdo

Reputation: 610

setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)

setwindowaFlags is a method that can call it from form object and just take one parameter is a constant QtCore.Qt.WindowStaysOnTopHint that refer to make your form Stays On Top

Upvotes: 26

Related Questions