PyQt: всегда на высоте
Это на PyQt4, Linux и Python 2.5
Могу ли я сделать так, чтобы PyQt устанавливал мое окно всегда поверх других приложений?
Например, в GTK я использую свойство: Modal.
Сейчас в PyQt я использую QWidget, но я не могу найти способ сделать это.
Есть идеи??
3 ответа
Передайте QMainWindow в WindowStaysOnTopHint
флаг окна (или используйте setWindowFlags).
Как и в названии, это подсказка для оконного менеджера (не является твердой гарантией).
Простейший возможный пример:
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
это метод, который может вызвать его из form
объект и просто принять один параметр является константой QtCore.Qt.WindowStaysOnTopHint
которые относятся к вашей форме остается на вершине
Как для безрамочного окна (без заголовка), так и для всегда сверху.
ИСПОЛЬЗОВАТЬ:setWindowFlags(QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.FramelessWindowHint)
ПРИМЕЧАНИЕ. Если вы попытаетесь установить отдельные флаги окон, безрамочное окно работать не будет. например:
self.setWindowFlags(Qt.FramelessWindowHint)
self.setWindowFlags(Qt.WindowStaysOnTopHint)