PyQt4:如何切换“保持领先”状态行为?

发布于 2024-10-15 00:04:49 字数 425 浏览 5 评论 0原文

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

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

逆蝶 2024-10-22 00:04:49

这应该禁用它:

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

这应该启用它:

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

This should disable it:

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

This should enable it:

window.setWindowFlags(window.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
錯遇了你 2024-10-22 00:04:49

罗什是正确的。但不要忘记在更改标志后包含 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)

寂寞花火° 2024-10-22 00:04:49

您需要 Qt::WindowStaysOnTopHint 提示,请参阅窗口标志示例

You want the Qt::WindowStaysOnTopHint hint, see Window Flags Example.

画离情绘悲伤 2024-10-22 00:04:49

我无法评论 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文