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 文档也是一个非常好的资源,只需确保您指向适用于您的 PyQt 版本的 Qt C++ 文档的版本(The如果您正在使用最新的 PyQt,则针对 4.4 编译)。

于 2009-04-25T22:09:08.720 回答