PyQt - 使窗口顶层

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt - 使窗口顶层相关的知识,希望对你有一定的参考价值。

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

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)

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

答案

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

from the doc for setWindowFlags()

注意:此函数在更改窗口的标志时调用setParent(),从而导致隐藏窗口小部件。您必须调用show()以使窗口小部件再次可见。

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

以上是关于PyQt - 使窗口顶层的主要内容,如果未能解决你的问题,请参考以下文章

如何使子窗口位于最顶层?

PyQt5对话框窗口打开时没有布局

在pyqt5中设置显示窗口的代码是啥?

如何强制关闭顶层窗口的消息框

如何使小部件随 PyQt5 中的窗口缩放?

怎么使通过进程打开的win32程序窗口始终置顶