首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从命令行获取XWindows GUI菜单项/小部件名称

从命令行获取XWindows GUI菜单项/小部件名称
EN

Unix & Linux用户
提问于 2013-10-18 03:03:22
回答 1查看 734关注 0票数 2

我刚刚了解了狗尾,它允许从命令行枚举GUI应用程序的菜单项/小部件;例如(通过测试/自动化/道格塔蒂尔- Ubuntu):

代码语言:javascript
复制
%> python
>>> from dogtail import tree
>>> gcalctool = tree.root.application('gcalctool')
>>> gcacltool.dump()
# You'll see something like: 
{"gcalctool" application}
 Node roleName='frame' name='Calculator  - Scientific' description=''
  Node roleName='filler' name='' description=''
   Node roleName='menu bar' name='' description=''
    Node roleName='menu' name='Calculator' description='' text='Calculator'
     click
     Node roleName='tear off menu item' name='' description='' text=''
      click
     Node roleName='menu item' name='Quit' description='' text='Quit'
      click
     Node roleName='menu item' name='Empty' description='' text='Empty'
      click
    Node roleName='menu' name='Edit' description='' text='Edit'
     click

但是,它使用了Gnome的辅助/“可访问性技术”(据我所见)。所以我想知道--是否有这样一个工具(至少可以枚举小部件的名称)在较低的级别上工作--例如在XWindows级别上?

我猜想(但不知道) XWindows本身并没有提供任何标准的小部件框架,因此,很难编写一个工具来查询XWindows级别的GUI小部件名称;这是正确的吗?(我想象像xdotoolwmctrl这样的东西,但它们都不能探测“在”GUI应用程序中)。

如果是这样的话-是否有一个工具可以与大多数桌面环境框架(Gnome,KDE .)一起工作?它可以查询/列出正在运行的GUI应用程序的小部件名称,但不需要使用可访问性技术层?

EN

回答 1

Unix & Linux用户

发布于 2013-10-20 01:58:06

20年前,答案应该是社论。经典的X窗口程序使用了X工具包,它提供了定义小部件层次结构并通过资源配置它的标准方法。许多使用X工具包的程序实现了Editres协议,该协议允许应用程序查询另一个应用程序的小部件树和资源值。

像Gtk和Qt这样的现代小部件工具包不支持X资源,更不用说Editres协议了。所以你运气不好。确实有人提议使用Gtk+中的编辑支持,但补丁从未被采用,即使库有必要的扩展,应用程序也必须包括额外的支持。对于Qt (即KDE应用程序),这个来自Qt邮件列表的旧帖子建议使用KD遗嘱执行人,但我不知道它是否能真正做到这一点。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/96570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档