Apakah ada alat mirip WinSpy ++ untuk Linux / X / GTK / QT?

8

Ketika saya menggunakan Windows, saya beberapa kali memanfaatkan WinSpy ++ yang memungkinkan untuk menunjuk ke jendela atau kontrol (widget, elemen jendela) untuk melihat detailnya (termasuk nilai bidang bidang struktur / kelas menjelaskan contoh khusus ini), mengirim pesan manajer jendela ke sana, dll. Salah satu tugas sepele yang biasa saya gunakan adalah menyalin teks dari widget yang tidak dapat dipilih (seperti label, yang tidak memungkinkan untuk memilih dan menyalin teks dari seperti yang dilakukan bidang teks). Apakah ada alat analog yang dapat saya gunakan dengan aplikasi GUI GNU / Linux?

Ivan
sumber

Jawaban:

7

Anda tidak dapat mengharapkan pemetaan 1: 1 di sini. Saya tidak tahu WinSpy ++, tetapi kemungkinan yang dapat dilakukan adalah menyebar ke beberapa alat yang berbeda, beberapa fitur-fiturnya tidak masuk akal di bawah X, dan sebaliknya alat X memiliki fitur tambahan yang tidak masuk akal di bawah Windows.

Distribusi X11 dasar dilengkapi dengan sejumlah alat sederhana . Yang paling mungkin relevan di sini adalah:

  • xclients untuk membuat daftar program yang memiliki koneksi ke tampilan
  • xprop untuk menampilkan properti jendela
  • xwininfo untuk menampilkan informasi teknis tentang jendela (posisi, visual, ...)

Ada juga alat-alat untuk memanipulasi sumber daya X : appres, editres(bagi mereka beberapa aplikasi yang menerapkannya), listres, xrdb.

Dua utilitas pihak ketiga yang sering berguna untuk mendapatkan informasi dan bertindak di windows adalah wmctrl(melakukan tindakan manajer jendela dari baris perintah) dan xdotool(mengirim acara ke jendela).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
6

Baik manajer jendela maupun server X tidak tahu tentang widget / kontrol, sehingga tidak ada cara standar bahwa alat dapat meminta sistem untuk detail widget aplikasi lain. Sebuah aplikasi kebanyakan mengirimkan hal-hal X server seperti pixmaps, operasi menggambar poligon dan operasi menggambar teks.

Namun ada alat yang dapat melampirkan ke proses dan memeriksa struktur data toolkit widget-nya. Untuk aplikasi yang menggunakan GTK +, ada Parasite . Garpu Parasite sekarang termasuk dalam GTK + sejak versi 3.14.

Untuk Qt, pencarian cepat menghasilkan Qt Inspector , terinspirasi oleh KSpy, alat yang disembunyikan di repositori KDE.

Jika Anda perlu mengetahui widget toolkit mana yang digunakan aplikasi, Anda bisa membuat daftar pustaka yang bergantung pada itu dengan menggunakan alat baris perintah ldd.

philippe
sumber
3

Pada dasarnya, tidak juga.

Untuk mendapatkan informasi tentang jendela, Anda dapat menggunakan

xwininfo

perintah. Namun, tidak mengherankan karena X11 berbeda dengan Windows, ia tidak mencetak informasi yang sama. Saya tidak tahu cara menyalin teks dari kontrol yang tidak dapat dipilih, meskipun mungkin ini lebih jarang daripada di bawah Windows.

Sedangkan untuk mengirim pesan manajer jendela, saya tidak yakin tentang itu. Anda mungkin dapat menggunakan alat berdasarkan ekstensi XRECORD, misalnya Xnee . Namun, saya belum pernah mencobanya.

James Youngman
sumber
untuk menyalin teks dari kontrol / jendela yang tidak dapat dipilih, saya kira itu harus menjadi bagian dari aksesibilitas (dari program / toolkit). (tapi afaik, standar tentang ini masih jauh dari matang.)
yuyichao