在Linux中,可以使用xwininfo
来获取窗口的位置。是否可以获得它的组件的位置,例如浏览器的内容区域,窗口的按钮? -children
的{{1}}选项只能获取子窗口的位置,而不是组件。
答案 0 :(得分:2)
我的理解是,现代工具包(如GTK +,Qt)不必必须使用X11窗口支持每个组件,但我发现很难找到这个声明的明确来源。如果X11窗口不支持组件或小部件,则xwininfo
将无法确定其位置。
例如,GTK +用于解释环境变量GDK_NATIVE_WINDOWS
,意味着每个GdkWindow(corresponding to every widget)都应该有一个本机窗口,但这只是为了与某些应用程序不兼容。此功能已被删除(https://mail.gnome.org/archives/commits-list/2011-March/msg03590.html)。 Gtk + / Gdk现在有gtk_ensure_native_window(),但如果程序员没有明确启用,似乎Gdk不会通过X11窗口支持小部件,因此xwininfo
将无法获取这些小部件的位置
似乎可能有特定工具包的替代品。例如,GTK +有gtkparasite,它可能会为您提供有关特定组件的信息,但这仅适用于GTK +应用程序。