简体   繁体   中英

Qt - raise window to current desktop/workspace on Linux DE

Preconditions: My Qt program (MainWindow) works on FIRST Linux desktop, and I work on SECOND .

Program invokes such piece of code:

mainWindow->raise();

What happens? My Desktop Environment switches to the FIRST desktop and shows main window on my app.

What I want to happen? Main window of my app is moved to the current ( SECOND ) desktop and shows here.

Is it possible with Qt and how?

Qt not support full Linux DE/WM environment. Virtual desktop is like not real virtual desktop.

This is complex question. I'll try explain (bad english).

Desktops and workspaces on Linux X Window System: https://www.circuitousroot.com/artifice/programming/useful/fvwm/viewports/index.html

Qt use xcb: https://xcb.freedesktop.org/ Here we have xcb connection: http://doc.qt.io/qt-5/qx11info.html#connection This is hard way without other libraries: xcb, ICCCM, EWMH only... I have this issue for my application, but later. I have only dirty tests on pure C, and it works.

You can try use (or look how to implement, I watched here) KWindowSystem: https://api.kde.org/frameworks/kwindowsystem/html/classKWindowSystem.html (which not have KDE dependencies!!!) but this class not have all functionality for all EWMH commands.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM