我正在直接使用C使用X11,Xt和Motif编写应用程序。我希望能够从父窗口列出所有子窗口小部件。有办法吗?
我发现以下代码片段以递归方式解析Motif小部件树here,但是我只有一个Xlib Window结构,所以我希望能够获得该Window的子级小部件,然后将该小部件传递给类似于该小部件的对象。递归树解析器。
我当前的代码如下所示:
int main() {
Display* display;
int screen_num = 0;
display = XOpenDisplay(NULL);
Window window = XRootWindow(display, screen_num);
dumpWidgetTree((Widget)window);
return 0;
}
我曾尝试将Window强制转换为Widget,但正如预期的那样,这导致了段错误。
您可以从窗口树中获取大多数小部件。您可以使用“ XtWindowToWidget”将windowID转换为小部件。这种方法适用于当前应用中的小部件,并且将无法访问无窗口小部件(也称为小工具)。