
今学んだ犬の尾、コマンドラインからGUIアプリケーションのメニュー項目/ウィジェットを列挙できます。テスト/自動化/DogtailTutorial - Ubuntu Wiki):
%> 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自体が標準ウィジェットフレームワークを提供していないようです。したがって、X-Windows レベルの GUI ウィジェット名を照会するツールを作成するのは難しいでしょう。そうですか? (xdotool
または同じことを想像しますwmctrl
が、どちらもGUIアプリケーションの「内部」を調べることはできません)。
それでは、実行中のGUIアプリケーションのウィジェット名を照会/並べ替えることができますが、アクセシビリティ技術層を使用しないほとんどのデスクトップ環境フレームワーク(Gnome、KDE ...)で動作するツールはありますか?
答え1
20年前、その答えは次の通りでした。編集する。 Classic X Window プログラムの使用Xツールキット、ウィジェット階層を定義し、次のように構成する標準的な方法を提供します。リソース。 Xツールキットを使用する多くのプログラムは、アプリケーションが他のアプリケーションのウィジェットツリーとリソース値を照会できるようにするEditresプロトコルを実装しています。
GtkやQtなどの最新のウィジェットツールキットは、EditresプロトコルだけでなくXリソースもサポートしていません。だからあなたは運がありません。誰かがプロポーズしました。Gtk+の編集サポートただし、パッチは採用されておらず、ライブラリに必要な拡張があっても、アプリケーションには追加のサポートが含まれている必要がありました。 Qt(つまり、KDEアプリケーション)の場合、Qtメーリングリストの古い投稿。提案KD執行人しかし、実際にそうすることができるかどうかはわかりません。