【问题标题】:Qt - raise window to current desktop/workspace on Linux DEQt - 在 Linux DE 上将窗口提升到当前桌面/工作区
【发布时间】:2018-11-14 19:07:52
【问题描述】:

前提条件:我的 Qt 程序(MainWindow)在 FIRST Linux 桌面上运行,而我在 SECOND 上运行。

程序调用这样一段代码:

mainWindow->raise();

会发生什么?我的桌面环境切换到FIRST桌面并在我的应用程序上显示主窗口。

我想要发生什么?我的应用程序的主窗口已移至当前 (SECOND) 桌面并显示在此处。

Qt 有可能吗?如何实现?

【问题讨论】:

标签: c++ linux qt desktop-application


【解决方案1】:

Qt 不支持完整的 Linux DE/WM 环境。虚拟桌面就像不是真正的虚拟桌面。

这是一个复杂的问题。我会尽力解释(英语不好)。

Linux X Window 系统上的桌面和工作区:https://www.circuitousroot.com/artifice/programming/useful/fvwm/viewports/index.html

Qt 使用 xcb:https://xcb.freedesktop.org/ 这里我们有 xcb 连接:http://doc.qt.io/qt-5/qx11info.html#connection 没有其他库,这很难:只有 xcb、ICCCM、EWMH ...... 我的应用程序有这个问题,但后来。我只对纯 C 进行了肮脏的测试,它可以工作。

您可以尝试使用(或查看如何实现,我在这里看过)KWindowSystem:https://api.kde.org/frameworks/kwindowsystem/html/classKWindowSystem.html(没有 KDE 依赖项!!!)但是这个类并不具备所有 EWMH 命令的所有功能。

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    相关资源
    最近更新 更多