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



前提条件:我的Qt程序(MainWindow(在FIRSTLinux桌面上工作,我在SECOND上工作。

程序调用这样一段代码:

mainWindow->raise();

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

我想发生什么我的应用程序的主窗口被移动到当前(SECOND(桌面并显示在此处。

Qt有可能吗?如何?

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

最新更新