【发布时间】:2010-12-27 20:33:04
【问题描述】:
这是在 PyQt4、Linux 和 Python 2.5 上
我可以让 PyQt 将我的窗口设置为“始终在顶部”而不是其他应用程序吗?
例如,在 GTK 中我使用属性:Modal。
现在,在 PyQt 中,我正在使用 QWidget,但是,我找不到这样做的方法。
有什么想法吗??
【问题讨论】:
这是在 PyQt4、Linux 和 Python 2.5 上
我可以让 PyQt 将我的窗口设置为“始终在顶部”而不是其他应用程序吗?
例如,在 GTK 中我使用属性:Modal。
现在,在 PyQt 中,我正在使用 QWidget,但是,我找不到这样做的方法。
有什么想法吗??
【问题讨论】:
将WindowStaysOnTopHint window flag 传递给QMainWindow(或使用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_()
【讨论】:
QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint) 不会被简化为:super().__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)?
setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
setwindowaFlags 是一种可以从form 对象调用它的方法,并且只需一个参数是一个常量QtCore.Qt.WindowStaysOnTopHint,它指的是使您的表单保持在顶部
【讨论】: