PyQt:永远在最前面

mRt*_*mRt 18 python pyqt

这是在PyQt4,Linux和Python 2.5上

我可以让PyQt设置我的窗口"永远在其他应用程序上"吗?

例如,在GTK中我使用属性:Modal.

现在,在PyQt我使用的是QWidget,但是,我找不到办法做到这一点.

有任何想法吗??

Chr*_*heD 27

传递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_()
Run Code Online (Sandbox Code Playgroud)

  • `QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)` 不会通过写成:`super().__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)` 来简化吗? (3认同)

小智 9

setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
Run Code Online (Sandbox Code Playgroud)

setwindowaFlags是一个可以从form对象调用它的方法,只需要一个参数是一个常量QtCore.Qt.WindowStaysOnTopHint,它引用你的表单Stays On Top