这是在 PyQt4、Linux 和 Python 2.5 上
我可以让 PyQt 将我的窗口设置为“始终位于顶部”而不是其他应用程序吗?
例如,在 GTK 中我使用属性:Modal。
现在,在 PyQt 中我使用 QWidget,但是,我找不到方法来做到这一点。
有什么想法吗??
向 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)