PyQt4:我如何切换“保持最佳状态”行为?

时间:2011-01-31 11:58:52

标签: python pyqt4 stayontop

我想创建一个应用程序,用户将决定主窗口将始终位于其他应用程序之上。

在PyQt4中,可以轻松创建一个始终位于顶部的窗口。这包括:PyQt: Always on top

我希望有一个小部件(菜单项,复选框等)可以打开或关闭此行为。到目前为止,我还没有找到重置原始行为的方法。

谢谢

UPDATE 在İsmail'cartman'Dönmez的建议之后,我搜索了一下,我在PyQt4中找到了WindowFlags示例的实现。

可以找到here

4 个答案:

答案 0 :(得分:13)

这应该禁用它:

window.setWindowFlags(window.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)

这应该启用它:

window.setWindowFlags(window.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)

答案 1 :(得分:4)

您需要Qt::WindowStaysOnTopHint提示,请参阅Window Flags Example

答案 2 :(得分:4)

Rosh是对的。但是在更改标志后不要忘记包含window.show()。更改标志后,您的窗口将被隐藏。我还包括切换标志的代码。

这将清除它:

window.setWindowFlags(window.windowFlags()& ~QtCore.Qt.WindowStaysOnTopHint)

这将启用它:

window.setWindowFlags(window.windowFlags()| QtCore.Qt.WindowStaysOnTopHint)

这将切换它:

window.setWindowFlags(window.windowFlags()^ QtCore.Qt.WindowStaysOnTopHint)

答案 3 :(得分:1)

我无法评论Rosh's answer,因此请注意 - 对于Devuan上的PyQt 5.7,如果在显示QDialog之后切换WindowStaysOnTopHint标志,则窗口消失,您需要显示( )之后立即再次。除此之外,它有效。