Abrufen von XWindows GUI-Menüelement-/Widgetnamen über die Befehlszeile

Abrufen von XWindows GUI-Menüelement-/Widgetnamen über die Befehlszeile

Ich habe gerade erfahren,Hundeschwanz, und es kann die Aufzählung von Menüelementen/Widgets einer GUI-Anwendung von der Befehlszeile aus ermöglichen; zum Beispiel (überTesten/Automatisierung/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

Es verwendet jedoch (soweit ich sehe) unterstützende/"Zugänglichkeitstechnologien" von Gnome Desktop. Daher habe ich mich gefragt: Gibt es ein solches Tool (das zumindest Widget-Namen aufzählen kann), das auf einer niedrigeren Ebene funktioniert - z. B. auf XWindows-Ebene?

Ich vermute (weiß es aber nicht), dass XWindows selbst kein Standard-Widget-Framework bietet – und es daher schwierig wäre, ein Tool zu schreiben, um die GUI-Widget-Namen auf X-Windows-Ebene abzufragen; ist das richtig? (Ich stelle mir so etwas wie xdotooloder vor wmctrl, aber keines von beiden kann „innerhalb“ der GUI-Anwendung nachfragen).

Wenn ja: Gibt es ein Tool, das mit den meisten Frameworks für Desktopumgebungen (Gnome, KDE usw.) funktioniert und die Widget-Namen einer laufenden GUI-App abfragen/auflisten kann, ohne jedoch die Ebene der Eingabehilfetechnologien zu verwenden?

Antwort1

Vor zwanzig Jahren wäre die Antwort gewesen:BearbeitungenKlassische X Window Programme verwendeten dieX-Toolkit, das eine Standardmethode zum Definieren einer Widget-Hierarchie und zum Konfigurieren über bietetRessourcen. Viele Programme, die das X-Toolkit verwenden, implementieren das Editres-Protokoll, das es Anwendungen ermöglicht, den Widget-Baum und die Ressourcenwerte einer anderen Anwendung abzufragen.

Moderne Widget-Toolkits wie Gtk und Qt unterstützen keine X-Ressourcen, geschweige denn das Editres-Protokoll. Sie haben also Pech gehabt. Jemand hat vorgeschlagenEditres-Unterstützung in Gtk+Der Patch wurde jedoch nie übernommen, und eine Anwendung musste zusätzliche Unterstützung enthalten, selbst wenn die Bibliothek die erforderlichen Erweiterungen enthielt. Für Qt (d. h. KDE-Anwendungen)dieser alte Beitrag aus einer Qt-Mailinglisteschlägt vorKD-Vollstrecker, aber ich habe keine Ahnung, ob es das tatsächlich kann.

verwandte Informationen