我想创建一个应用程序,用户将决定主窗口将始终位于其他应用程序之上。
在PyQt4中,可以轻松创建一个始终位于顶部的窗口。这包括:PyQt: Always on top
我希望有一个小部件(菜单项,复选框等)可以打开或关闭此行为。到目前为止,我还没有找到重置原始行为的方法。
谢谢
UPDATE 在İsmail'cartman'Dönmez的建议之后,我搜索了一下,我在PyQt4中找到了WindowFlags示例的实现。
可以找到here
答案 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标志,则窗口消失,您需要显示( )之后立即再次。除此之外,它有效。