在GTK中查找进程的所有打开窗口

时间:2011-03-15 01:25:24

标签: linux gtk

在GTK中是否有通过特定进程打开所有当前窗口?理想情况下,我希望能够获得GtkWindow实例。我知道Java AWT有这个:

java.awt.Window[] windows = java.awt.Window.getWindows();

微软的UI自动化也有办法获得应用程序的所有窗口。无论如何用GTK做到这一点?

我发现了一个函数gtk_window_list_toplevels,但它似乎返回了太多的窗口。应用程序gedit在我的计算机上有30个顶级窗口。对于具有一个窗口的应用程序来说,这似乎太多了。

1 个答案:

答案 0 :(得分:2)

gtk_window_list_toplevels()只为您提供进程中的窗口,但其中包含隐藏的窗口。因此,如果您列出像Gedit这样的应用程序的顶层窗口,您可能会获得许多隐藏的首选项窗口,搜索对话框,以及可能还有许多与许多插件相关的其他窗口。首先尝试使用您自己编写的简单单窗口应用程序,然后您会发现它只返回主窗口。