【问题标题】:PyQt - make window top levelPyQt - 使窗口顶层
【发布时间】:2010-10-21 20:10:12
【问题描述】:

我需要在需要时将窗口设为顶层。 创建窗口代码:

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)

但是在运行这部分代码后,我的窗口隐藏了……我不知道,它在哪里。但是我的程序没有关闭! 帮助!我怎样才能在需要的时候让我的窗口最上面?

【问题讨论】:

    标签: pyqt window


    【解决方案1】:

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

    还有from the doc for setWindowFlags():

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

    我只是想为其他发现这个问题的人补充一点,即使在使用 PyQt 时,C++ 的 Qt 文档也是一个非常好的资源,只需确保您指向适用于您的版本的 Qt C++ 文档的版本PyQt(如果您使用的是最新的 PyQt,则根据 4.4 编译)。

    【讨论】:

    • window.raise_() 在 Linux 和 PyQt 4.8.3 上对我不起作用,这是一个错误吗?
    猜你喜欢
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2019-10-06
    相关资源
    最近更新 更多