コマンドラインから XWindows GUI メニュー項目/ウィジェット名を取得する

コマンドラインから XWindows GUI メニュー項目/ウィジェット名を取得する

私は今、ドッグテール、コマンドラインからGUIアプリケーションのメニュー項目/ウィジェットを列挙することができます。たとえば、(テスト/自動化/D​​ogtailチュートリアル - 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年前なら答えはこうだっただろう編集者従来のXウィンドウプログラムは、X ツールキットウィジェット階層を定義し、それを設定する標準的な方法を提供します。リソースX ツールキットを使用する多くのプログラムは、アプリケーションが別のアプリケーションのウィジェット ツリーとリソース値を照会できるようにする Editres プロトコルを実装しています。

GtkやQtなどの最新のウィジェットツールキットは、EditresプロトコルはおろかXリソースもサポートしていません。つまり、運が悪いのです。誰かが提案したようにGtk+ でのエディタのサポートしかし、パッチは採用されず、ライブラリに必要な拡張機能があっても、アプリケーションは追加のサポートを組み込む必要がありました。Qt(つまりKDEアプリケーション)の場合、Qtメーリングリストからの古い投稿示唆するKDエグゼキューターしかし、実際にこれができるかどうかはわかりません。

関連情報