从“QWidget”中获取信息

时间:2009-07-10 17:27:59

标签: winapi qt qwidget

任何人都知道如何从Windows应用程序的QWidget窗口中获取文本?这是我使用Winspector查看它时的样子:

http://www.tightpoker.com/images/ftplobby.jpg

我会将其作为图片发布,但显然不允许新用户使用图片标记...

找不到任何子类(即锦标赛列表)。我正在尝试找到一种方法来调用正在编写的自定义应用程序中的列表来收集数据。

2 个答案:

答案 0 :(得分:1)

Qt现在提供QAccessibility类很长一段时间了,允许像Narrator(Start-> Run ...-> narrator)或Jaws这样的屏幕阅读器处理控件并将其读取给用户。据我所知,所有标准小部件都支持这个功能,因为在qt4附近。

不幸的是,当开发人员决定基于QWidged实现他自己的控件并且没有实现QAccessibleInterface时,创建的类是“静音的”并且对于任何类型的检查器或屏幕阅读器都是不可见的。它只是屏幕上的一组像素。

尝试运行叙述者,并注意打开ftplobby后会说什么,“...不包含其他已知的控件”意味着你可能运气不好,应该开始研究OCR和模拟点击。

答案 1 :(得分:0)

在目标应用程序中运行一些代码之后,您可以从QApplication::topLevelWidgets()开始,使用QMetaObject::userProperty()遍历QObject层次结构。

如果您没有在目标应用程序中运行代码,我无法知道。我很确定也没办法,因为Squish和KD Executor(google for KDExecutor,使用谷歌缓存,网站目前正在改造)需要将代码(通过预加载)注入AUT(应用程序测试中)。