如果显示桌面,则窗口保持在顶部,但不在其他窗口的顶部(Qt)

时间:2013-07-03 21:57:08

标签: qt pyqt

我正在用PyQt4编写一个小应用程序。

使用“WindowStaysOnTopHint”,我可以让应用程序的窗口保持在其他窗口的顶部。现在我想点击Windows7右下角的按钮,它显示了桌面,最大限度地减少了一切。但是程序(一个笔记应用程序)应始终保持可见,而不是最小化。

使用“WindowStaysOnTopHint”它可以工作,但它也保持在每个其他窗口的顶部,例如firefox,这不是我想要的。

是否有特殊命令或者我可以以某种方式过滤“show desktop”按钮吗?

1 个答案:

答案 0 :(得分:0)

你可以覆盖eventFilter()方法,这样如果用户聚焦,(点击窗口外的其他东西),你可以禁用停留在停止标志。

class MyWidget(QWebView):
    def __init__(self):
        super(MyWidget, self).__init__()
        self.installEventFilter(self)

    def eventFilter(self, qobject, qevent):
        qtype = qevent.type()
        if qtype == QEvent.FocusOut:
           #disable the stay on top flag, by setting some other flag
           self.setWindowFlags(WindowCloseButtonHint)
           return True
        return super(MyWidget, self).eventFilter(qobject, qevent)