¿Existe una herramienta similar a WinSpy ++ para Linux / X / GTK / QT?

8

Cuando estaba usando Windows, algunas veces hice un buen uso de WinSpy ++, que me permitió apuntar a una ventana o un control (un widget, un elemento de ventana) para ver detalles al respecto (incluidos los valores de los campos de la estructura / clase describir esta instancia en particular), enviarle mensajes del administrador de ventanas, etc. Una de las tareas triviales habituales para las que he estado usando era copiar texto de un widget no seleccionable (como una etiqueta, que no permite seleccionar y copiar texto de como lo hace un campo de texto). ¿Existe alguna herramienta análoga que pueda usar con las aplicaciones GUI de GNU / Linux?

Ivan
fuente

Respuestas:

7

No puede esperar un mapeo 1: 1 aquí. No conozco WinSpy ++, pero es probable que lo que pueda hacer se extienda a varias herramientas diferentes, algunas de sus características simplemente no tienen sentido en X y, por el contrario, las herramientas X tienen características adicionales que no tienen sentido en Windows

La distribución básica de X11 viene con una serie de herramientas simples . Los que tienen más probabilidades de ser relevantes aquí son:

  • xclients para enumerar los programas que tienen una conexión a una pantalla
  • xprop para mostrar las propiedades de la ventana
  • xwininfo para mostrar información técnica sobre una ventana (posición, imágenes, ...)

También hay herramientas para manipular los recursos X : appres, editres(para aquellas pocas aplicaciones que ponerlo en práctica), listres, xrdb.

Dos utilidades de terceros que a menudo son útiles para obtener información y actuar en ventanas son wmctrl(realizar acciones del administrador de ventanas desde la línea de comandos) y xdotool(enviar eventos a una ventana).

Gilles 'SO- deja de ser malvado'
fuente
6

Ni el administrador de ventanas ni el servidor X conocen los widgets / controles, por lo que no existe una forma estándar de que una herramienta pueda consultar al sistema los detalles de los widgets de otra aplicación. Una aplicación principalmente envía al servidor X cosas como pixmaps, operaciones de dibujo de polígonos y operaciones de dibujo de texto.

Sin embargo, existen herramientas que pueden adjuntarse a un proceso e inspeccionar las estructuras de datos de su kit de herramientas de widgets. Para las aplicaciones que usan GTK +, hay Parásito . Una bifurcación de parásito ahora se incluye en GTK + desde la versión 3.14.

Para Qt, una búsqueda rápida muestra Qt Inspector , inspirado en KSpy, una herramienta oculta en los repositorios de KDE.

Si necesita averiguar qué kit de herramientas de widgets utiliza una aplicación, puede enumerar las bibliotecas de las que depende utilizando la herramienta de línea de comandos ldd.

philippe
fuente
3

Básicamente, no realmente.

Para obtener información sobre una ventana, puede usar el

xwininfo

mando. Sin embargo, como era de esperar porque X11 es diferente a Windows, no imprime la misma información. No conozco ninguna forma de copiar texto de controles no seleccionables, aunque quizás estos sean menos comunes que en Windows.

En cuanto al envío de mensajes del administrador de ventanas, no estoy seguro de eso. Es posible que pueda usar una herramienta basada en la extensión XRECORD, por ejemplo Xnee . Sin embargo, nunca he intentado esto.

James Youngman
fuente
para copiar texto fuera del control / ventana no seleccionable, supongo que debería ser parte de la accesibilidad (del programa / kit de herramientas). (pero afaik, el estándar en esto está lejos de ser maduro.)
yuyichao