0

私は PyQt4 で小さなアプリケーションを書いています。

「WindowStaysOnTopHint」を使用すると、アプリのウィンドウを他のウィンドウの上に表示できます。ここで、デスクトップを表示する Windows7 の右下のボタンをクリックして、すべてを最小化します。ただし、プログラム (メモ アプリ) は常に表示され、最小化されないようにする必要があります。

「WindowStaysOnTopHint」を使用すると機能しますが、他のすべてのウィンドウ、たとえばfirefoxの上にも表示されますが、これは私が望んでいるものではありません。

そのための特別なコマンドはありますか、それとも「デスクトップを表示」ボタンで何らかの方法でフィルタリングできますか?

4

1 に答える 1

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)
于 2013-12-17T19:46:25.837 に答える