PyQt - 使窗口顶层

时间:2009-04-25 20:36:58

标签: pyqt window

我需要在需要时让我的窗口达到最高水平。 创建窗口代码:

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)

但在运行这部分代码后,我的窗口隐藏了......我不知道,它在哪里。但是我的节目没有结束! 救命!如何在需要的时刻让我的窗户最顶级?

1 个答案:

答案 0 :(得分:7)

在窗口上调用.show()或.raise()应该使其成为焦点。

from the doc for setWindowFlags()

  

注意:此函数调用setParent()   更改窗口的标志时,   导致小部件被隐藏。您   必须调用show()来制作小部件   再次可见..

我只是想为其他任何发现这个问题的人添加即使使用PyQt,Qt doc for C ++也是一个非常好的资源,只要确保你指向适用于你的版本的Qt C ++ doc的版本PyQt(如果你正在使用的话,最新的PyQt是针对4.4编译的。)