Qt-将窗口提升到Linux DE上的当前桌面/工作区

时间:2018-11-14 19:07:52

标签: c++ linux qt desktop-application

先决条件:我的Qt程序(MainWindow)在 FIRST Linux桌面上工作,而在 SECOND 上工作。

程序调用以下代码:

mainWindow->raise();

会怎样?我的桌面环境切换到 FIRST 桌面,并在我的应用程序上显示主窗口。

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

Qt有可能吗?怎么办?

1 个答案:

答案 0 :(得分:0)

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命令的所有功能。