Linux/X/GTK/QT 有类似 WinSpy++ 的工具吗?

Linux/X/GTK/QT 有类似 WinSpy++ 的工具吗?

当我使用 Windows 时,我有时很好地利用了 WinSpy++,它允许指向窗口或控件(小部件、窗口元素)以查看有关它的详细信息(包括结构/类的字段值)描述这个特定的实例),向它发送窗口管理器消息等。我一直在使用它的常见琐碎任务之一是从不可选择的小部件(如标签,不允许从其中选择和复制文本)复制文本就像文本字段一样)。是否有类似的工具可以与 GNU/Linux GUI 应用程序一起使用?

答案1

您不能期望这里有 1:1 的映射。我不了解 WinSpy++,但它的功能很可能分布在几个不同的工具中,它的某些功能在 X 下根本没有意义,相反,X 工具具有在 X 下没有意义的附加功能视窗。

基本的 X11 发行版附带一些简单的工具。这里最有可能相关的是:

  • xclients列出与显示器连接的程序
  • xprop显示窗口属性
  • xwininfo显示有关窗口的技术信息(位置、视觉效果……)

还有一些工具可以操纵X资源appres,editres(对于那些实现它的少数应用程序),listres,xrdb

两个通常可用于获取信息并在 Windows 上执行操作的第三方实用程序是wmctrl(从命令行执行窗口管理器操作)和xdotool(将事件发送到窗口)。

答案2

窗口管理器和 X 服务器都不知道小部件/控件,因此没有标准方法可以让工具向系统查询另一个应用程序小部件的详细信息。应用程序主要向 X 服务器发送像素图、多边形绘制操作和文本绘制操作等内容。

然而,有些工具可以附加到进程并检查其小部件工具包的数据结构。对于使用 GTK+ 的应用程序,有寄生虫。寄生虫的一个分支现在是包含在 GTK+ 中从 3.14 版本开始。

对于 Qt,快速搜索就会出现Qt 检查器,受到 KSpy 的启发,KSpy 是一个隐藏在 KDE 存储库中的工具。

如果您需要找出应用程序使用哪个小部件工具包,可以使用命令行工具列出它所依赖的库ldd

答案3

基本上,不是真的。

要获取有关窗口的信息,您可以使用

xwininfo

命令。然而,毫不奇怪,因为 X11 与 Windows 不同,它不会打印相同的信息。我不知道有什么方法可以从不可选择的控件中复制文本,尽管这些可能不如 Windows 下常见。

至于发送窗口管理器消息,我不确定。例如,您也许可以使用基于 XRECORD 扩展的工具西尼。不过,我从来没有尝试过这个。

相关内容