【问题标题】:PyQt5: Toggling "Stay on Top" not working in UbuntuPyQt5:切换“保持领先”在 Ubuntu 中不起作用
【发布时间】:2020-02-20 00:30:05
【问题描述】:

我正在构建一个跨平台应用程序,该应用程序有一个按钮来使用 PyQt 5.13.1 切换无框窗口“保持在顶部”选项。我使用以下选项来实现这一点。

self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Dialog) - 默认窗口标志

self.setWindowFlags(window.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint) - 禁用留在顶部,

self.setWindowFlags(window.windowFlags() | QtCore.Qt.WindowStaysOnTopHint) - 启用保持领先。

这些行在 Windows 和 Mac 中运行良好,但在 Linux 中不起作用(在 Ubuntu、CentOS 上尝试过)。我什至尝试过使用不同的窗口标志,但没有成功!

【问题讨论】:

  • 这是在X11 上吗?如果是这样,您也可以尝试设置 QtCore.Qt.X11BypassWindowManagerHint 标志,看看是否有任何不同。

标签: python-3.x linux qt pyqt pyqt5


【解决方案1】:

G.M.'s comment 展示了一个很好的解决方案:

只需将QtCore.Qt.X11BypassWindowManagerHint 添加到窗口标志。

如果您在非 Linux 操作系统上运行代码,Python 会忽略该标志。

如果这不起作用,您可以将QtCore.Qt.BypassWindowManagerHint 添加到窗口标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 2010-10-19
    • 2023-04-04
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多