PyQt4:如何切换“始终在最上”行为?
我想创建一个应用程序,让用户可以决定主窗口是否总是显示在其他应用程序的上面。
在PyQt4中,创建一个总是显示在最上面的窗口很简单。相关内容可以在这里找到:PyQt: Always on top
我想要一个小工具(比如菜单项、复选框等),可以用来切换这个功能的开关。目前为止,我还没有找到重置原始行为的方法。
谢谢
更新:
在İsmail 'cartman' Dönmez的建议下,我多搜索了一下,找到了一个在PyQt4中实现WindowFlags的例子。
可以在这里找到。
4 个回答
4
你想要使用 Qt::WindowStaysOnTopHint
这个提示,可以查看这个链接了解更多内容:窗口标志示例。
5
Rosh说得对。不过别忘了在你改变标志之后加上window.show()。因为当你改变标志时,窗口会变得隐藏。我还附上了切换标志的代码。
这个代码会清除标志:
window.setWindowFlags(window.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
这个代码会启用标志:
window.setWindowFlags(window.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
这个代码会切换标志的状态:
window.setWindowFlags(window.windowFlags() ^ QtCore.Qt.WindowStaysOnTopHint)
17
这段代码应该可以让它失效:
window.setWindowFlags(window.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
这段代码应该可以让它恢复有效:
window.setWindowFlags(window.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)