首页 > 解决方案 > 单个屏幕内的多个桌面

问题描述

我需要有关用户创建的桌面的信息,无论一个或多个屏幕连接到机器。

目前我有一个应用程序,里面有标签,可以分离并移动到另一个手动创建的桌面,而主应用程序仍然在第一个(主)桌面上。您能否建议如何获取分离选项卡所在的桌面的 ID(和其他可用信息)?

我一直在寻找如何使用 Qt 框架和 QDesktopWidget 类获取用户创建的桌面的数量,但到目前为止还没有成功。QDesktopWidget 类提供屏幕信息,例如其总大小、屏幕数量、每个屏幕的几何形状等……但不提供有关在屏幕内创建的虚拟桌面的信息。

标签: c++qt

解决方案


这些不是真正的桌面,它们是“工作区”,它们特定于桌面环境。所以,据我所知,你有两个选择:

  • wmctrl通过参数启动实用程序QProcess并获取输出
  • 找到 wmctrl 的来源并从那里获取一些代码(我自己没有尝试,但看起来像get_property()&list_desktops()包含所需的)

在任何情况下,它看起来都不会像太便携的解决方案,当然 =)


推荐阅读