c - 获取窗口的输入元素

标签 c xlib window-managers

我正在使用 C 和 Xlib 编写一个应用程序,我想知道是否可以获取窗口的输入元素小部件(文本框、按钮等)的列表。

我正在使用 XQueryTree 函数检索窗口列表。我想要完成的是能够将焦点设置到给定窗口中的某个文本框或按钮。

我知道这是由工具包(GTK、QT、..)处理的,但我想知道是否有机会将此信息提供给 Xserver。

最佳答案

所以,我一直在研究 ATK,它似乎可以满足我的需要。

对于其他想知道的人来说,GNOME 开发的辅助工具包 (ATK) 公开了很多关于通过 dbus 运行应用程序的信息。

它允许您遍历可访问性树(应用程序 GUI 的一部分)并获取有关它们的信息,例如名称、状态(例如“启用”、“可见”、“可编辑”、“可聚焦”、.. .) 和角色(例如“应用程序”、“框架”、“面板”、“按钮”、“菜单栏”……)。 它还允许操纵焦点甚至触发操作(例如模拟按钮中的点击)。

对于 C 语言的开发,我一直在使用 libatspi 库。

关于c - 获取窗口的输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147275/

相关文章:

Java:替换窗口左上角的咖啡杯图标

c - 读取Linux内核中的数据包内容(netfilters)

C:无法在 Atmel Studios 中使用 1D 数组初始化 2D 数组

有人可以解释一下这段代码的作用吗?

linux - OpenGL 3+ 的 UI 实用程序库,或者 Xlib 可以吗?

c - 为什么 egl 像素图表面适用于 opengl es 而不适用于 opengl?

haskell - 仅从全屏 float 窗口中删除边框(XMonad 配置)

c - 用于编译和生成 C 文件输出的 Shell 脚本文件

linux - X11 中的抗锯齿文本

linux - 如何对 AwesomeWM 文本时钟小部件实现序数日?