使用 Qt(在 X11 上)检测标题栏 window 处的控制按钮位置
Detect control buttons position at window title bar with Qt (on X11)
一些 DE(在 Unity 上,或在 OSX 上)将控制按钮(最小化、最大化、关闭)放置在标题栏的左侧。其他将它们放在右侧(例如 Windows)。如何使用 Qt 检测当前环境使用的是哪一侧?如果没有 "Qt way" 可以执行此操作,我该如何执行此平台特定方式(对于 linux)?
恐怕 Qt 对它 运行 所在的 window 管理器一无所知。它仅向 WM 提供 window 内容 。
你可能想看看这个:Qt - how to detect whether the application is running on GNOME or KDE?
基本上他们会检测 WM 的 pid 是否按名称存在,但如果 WM 进程名称在某个时候被重命名,您的代码就会中断。
除此之外(这是 Linux 特有的),Qt 确实可以告诉您 平台 它是 运行 在 (see documentation), 因此你可以推导出 window 控制位移
一些 DE(在 Unity 上,或在 OSX 上)将控制按钮(最小化、最大化、关闭)放置在标题栏的左侧。其他将它们放在右侧(例如 Windows)。如何使用 Qt 检测当前环境使用的是哪一侧?如果没有 "Qt way" 可以执行此操作,我该如何执行此平台特定方式(对于 linux)?
恐怕 Qt 对它 运行 所在的 window 管理器一无所知。它仅向 WM 提供 window 内容 。
你可能想看看这个:Qt - how to detect whether the application is running on GNOME or KDE?
基本上他们会检测 WM 的 pid 是否按名称存在,但如果 WM 进程名称在某个时候被重命名,您的代码就会中断。
除此之外(这是 Linux 特有的),Qt 确实可以告诉您 平台 它是 运行 在 (see documentation), 因此你可以推导出 window 控制位移