Esiste uno strumento simile a WinSpy ++ per Linux / X / GTK / QT?


8

Quando stavo usando Windows, alcune volte ho fatto un buon uso di WinSpy ++ che mi ha permesso di puntare su una finestra o un controllo (un widget, un elemento finestra) per vedere i dettagli su di esso (inclusi i valori dei campi della struttura / classe descrivendo questa particolare istanza), inviandogli messaggi di window manager ecc. Una delle solite attività banali per cui lo sto usando era copiare il testo da un widget non selezionabile (come un'etichetta, che non consente di selezionare e copiare il testo da come fa un campo di testo). Esiste uno strumento analogo che posso usare con le applicazioni della GUI GNU / Linux?

Risposte:


7

Non puoi aspettarti un mapping 1: 1 qui. Non conosco WinSpy ++, ma è probabile che ciò che può fare sia distribuito su diversi strumenti, alcune delle sue caratteristiche semplicemente non hanno senso sotto X, e viceversa gli strumenti X hanno funzioni aggiuntive che non hanno senso sotto Finestre.

La distribuzione X11 di base include numerosi strumenti semplici . Quelli che hanno più probabilità di essere rilevanti qui sono:

  • xclients per elencare i programmi che hanno una connessione a un display
  • xprop per visualizzare le proprietà della finestra
  • xwininfo per visualizzare informazioni tecniche su una finestra (posizione, elementi visivi, ...)

Ci sono anche strumenti per manipolare le risorse X : appres, editres(per quei pochi applicazioni che la sua attuazione), listres, xrdb.

Due utilità di terze parti che sono spesso utili per ottenere informazioni e agire su Windows sono wmctrl(eseguire le azioni del gestore finestre dalla riga di comando) e xdotool(inviare eventi a una finestra).


6

Né il gestore delle finestre né il server X sono a conoscenza di widget / controlli, quindi non esiste un modo standard in cui uno strumento possa interrogare il sistema per i dettagli dei widget di un'altra applicazione. Un'applicazione invia principalmente al server X cose come pixmap, operazioni di disegno poligonale e operazioni di disegno di testo.

Tuttavia, esistono strumenti che possono essere collegati a un processo e ispezionare le strutture dei dati del suo toolkit del widget. Per le applicazioni che usano GTK +, c'è Parasite . Un fork di Parasite è ora incluso in GTK + dalla versione 3.14.

Per Qt, una rapida ricerca rivela Qt Inspector , ispirato a KSpy, uno strumento nascosto nei repository di KDE.

Se devi scoprire quale widget toolkit utilizza un'applicazione, puoi elencare le librerie da cui dipende usando lo strumento da riga di comando ldd.


3

Fondamentalmente, non proprio.

Per ottenere informazioni su una finestra, è possibile utilizzare

xwininfo

comando. Tuttavia, non sorprende perché X11 è diverso da Windows, non stampa le stesse informazioni. Non conosco alcun modo per copiare il testo da controlli non selezionabili, anche se forse questi potrebbero essere meno comuni di quanto lo siano in Windows.

Per quanto riguarda l'invio di messaggi di window manager, non ne sono sicuro. Potresti essere in grado di utilizzare uno strumento basato sull'estensione XRECORD, ad esempio Xnee . Tuttavia, non l'ho mai provato.


per copiare il testo da un controllo / finestra non selezionabile, suppongo che dovrebbe essere parte dell'accessibilità (del programma / toolkit). (ma a proposito, lo standard su questo è tutt'altro che maturo.)
yuyichao,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.