PyQt4:如何切换“保持领先”状态行为?
我想创建一个应用程序,用户将决定主窗口将始终位于其他应用程序之上。
在 PyQt4 中,很容易创建一个始终位于顶部的窗口。这里介绍了: PyQt:始终位于顶部
我想要一个小部件(菜单项、复选框等),这将打开或关闭此行为。到目前为止我还没有找到重置原始行为的方法。
谢谢
更新 在 Ismail 'cartman' Dönmez 的建议之后,我进行了更多搜索,并在 PyQt4 中找到了 WindowFlags 示例的实现。
可以在此处找到
I want to create an app, where the user will decide it the main window will stay always on top of the other apps.
In PyQt4 it is easy to create a window that will stay always on top. This is covered here : PyQt: Always on top
What I want to have a widget (menu item, checkbox etc) that will toggle this behavior on or off. So far i haven't found a way to reset the original behavior.
thank you
UPDATE
After the suggestion of İsmail 'cartman' Dönmez, I searched a bit more and I found an implementation of the WindowFlags example in PyQt4.
It can be found here
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这应该禁用它:
这应该启用它:
This should disable it:
This should enable it:
罗什是正确的。但不要忘记在更改标志后包含 window.show() 。当标志更改时,您的窗口将被隐藏。我还包含了切换标志的代码。
这将清除它:
window.setWindowFlags(window.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
这将启用它:
window.setWindowFlags(window.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
这将切换它:
window .setWindowFlags(window.windowFlags() ^ QtCore.Qt.WindowStaysOnTopHint)
Rosh is correct. But don't forget to include window.show() after you change the flag. Your window will be hidden when the flag is changed. I have also included the code for toggling the flag.
This will clear it:
window.setWindowFlags(window.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
This will enable it:
window.setWindowFlags(window.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
This will toggle it:
window.setWindowFlags(window.windowFlags() ^ QtCore.Qt.WindowStaysOnTopHint)
您需要
Qt::WindowStaysOnTopHint
提示,请参阅窗口标志示例。You want the
Qt::WindowStaysOnTopHint
hint, see Window Flags Example.我无法评论 Rosh 的回答,因此请注意 - 对于 Devuan 上的 PyQt 5.7,如果您切换 WindowStaysOnTopHint显示 QDialog 上的标志后,窗口消失,您需要立即再次显示()它。除此之外它还有效。
I'm not able to comment on Rosh's answer, so noting here - for PyQt 5.7 on Devuan, if you toggle the WindowStaysOnTopHint flag on a QDialog after it is shown, the window disappears and you need to show() it again immediately after. Other than this it works.