1

QWebView オブジェクトがあり、WindowStaysOnTopHintを設定しましたが、オフにすると QWebView オブジェクトが消えます。

view = QWebView()
view.setWindowFlags(WindowStaysOnTopHint)
view.show()
....
#in some slot
view.setWindowFlags(WindowStaysBottomHint)  # causes window to disappear

アップデート

以前のセットアップはコードの簡略化されたバージョンでした。詳細は次のとおりです。

class Window(QObject):
    self.view = QWebView()
    self.view.setWindowFlags(WindowStayOnTopHint)
    self.installEventFilter(this)
....
    def eventFilter(self,qobject, qevent):
        if qevent.type() == QEvent.FocusOut:
        # Turn on CloseButtonHint and turn off StayOnTopHint
        self.view.setWindowFlags(Qt.WindowCloseButtonHint)
        qobject.show()  # previously I had self.view.show(), does not cause window to show
    return super(FeedbackWindow, self).eventFilter(qobject, qevent)
4

1 に答える 1

5

setWindowFlagsのドキュメントから:

注: この関数は、ウィンドウのフラグを変更するときに setParent() を呼び出し、ウィジェットを非表示にします。ウィジェットを再び表示するには、show() を呼び出す必要があります。

于 2013-11-02T01:43:39.097 に答える