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??
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??
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_()
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
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)
© 2022 - 2024 — McMap. All rights reserved.
QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)
be simplified by writing:super().__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)
? – Giltedged