我正在研究Ubuntu。我正在编写一个应用程序来捕获gtkwindow屏幕截图。但是现在,我无法通过窗口标题获取gtkwindow指针。有没有办法找到标题的gtkwindow?
答案 0 :(得分:2)
Gtk没有这样做的API。您只能获得自己创建的Windows的GtkWindow对象。你必须做更低级别并直接使用xlib。首先,您必须为显示器获取Display对象(基本上是一个表示与Xserver连接的对象,因为Xclient可以同时在多个Xservers上显示窗口)。如果您没有关于如何获取特定屏幕的任何其他ide,请使用gdk_x11_get_default_xdisplay()
获取默认屏幕。然后,您将获得带有DefaultRootWindow()
的根窗口。要获取子窗口列表,请使用XQueryTree()
。要获取用于比较的窗口名称,请使用XFetchName()
。请注意,X上下文中的窗口与被视为窗口的窗口不同。窗口管理器框架是窗口(有时是多个级别),包含作为子项的实际应用程序窗口,因此可能需要反复使用XQueryTree()
。
您可能也对libwnck感兴趣,这可以简化这一点。