3

必要なときにウィンドウをトップレベルにする必要があります。ウィンドウを作成するコード:

class Application(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, None, Qt.Tool | Qt.FramelessWindowHint)
        self.setFocusPolicy(Qt.StrongFocus)
        self.setAttribute(Qt.WA_QuitOnClose, True)

そして、私がする必要があるとき:

self.setWindowFlags(Qt.WindowStaysOnTopHint)

しかし、コードのこの部分を実行した後、ウィンドウが非表示になります...どこにあるのかわかりません。しかし、私のプログラムは閉じません! ヘルプ!必要なときにウィンドウを一番上にするにはどうすればよいですか?

4

1 に答える 1

7

ウィンドウで .show() または .raise() を呼び出すと、ウィンドウが一番上にフォーカスされるはずです。

そしてsetWindowFlags() のドキュメントから:

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

PyQt を使用している場合でも、C++ の Qt doc は非常に優れたリソースであるというこの質問を見つけた他の人のために追加したかったのですが、PyQt のバージョンに適用される Qt C++ doc のバージョンを指していることを確認してください (最新の PyQt は、使用している場合は 4.4 に対してコンパイルされています)。

于 2009-04-25T22:09:08.720 に答える