c++ - 单个屏幕内的多个桌面
问题描述
我需要有关用户创建的桌面的信息,无论一个或多个屏幕连接到机器。
目前我有一个应用程序,里面有标签,可以分离并移动到另一个手动创建的桌面,而主应用程序仍然在第一个(主)桌面上。您能否建议如何获取分离选项卡所在的桌面的 ID(和其他可用信息)?
我一直在寻找如何使用 Qt 框架和 QDesktopWidget 类获取用户创建的桌面的数量,但到目前为止还没有成功。QDesktopWidget 类提供屏幕信息,例如其总大小、屏幕数量、每个屏幕的几何形状等……但不提供有关在屏幕内创建的虚拟桌面的信息。
解决方案
这些不是真正的桌面,它们是“工作区”,它们特定于桌面环境。所以,据我所知,你有两个选择:
wmctrl
通过参数启动实用程序QProcess
并获取输出- 找到 wmctrl 的来源并从那里获取一些代码(我自己没有尝试,但看起来像
get_property()
&list_desktops()
包含所需的)
在任何情况下,它看起来都不会像太便携的解决方案,当然 =)
推荐阅读
- flutter - 升级到 macOS Catalina 后将颤振路径从 .bash_profile 更改为 .zprofile
- python - 如何从最后一个“。”之后的字符串中删除最后一个字符
- c++ - 将 FreeType GlyphSlot 位图转换为 Vulkan BGRA
- r - 嵌套 ifelse 函数是否有 R 函数?
- python - 如何将此 python 行代码转换为列表理解?
- matlab - 在matlab中增加生成的文本文件中的有效数字
- c# - 如何将数据添加到 SQLite 离线数据库表并在 listView Xamarin 上显示
- python - 如何获得按 numpy 和 pandas 中的变量分组的平均值?
- python - 为什么函数应该完成后循环重复(看似随机)?
- r - 为向量中的每个元素分配百分位数?