我正在直接使用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,但正如预期的那样,这导致了段错误。
答案 0 :(得分:0)
您可以从窗口树中获取大多数小部件。您可以使用“ XtWindowToWidget”将windowID转换为小部件。这种方法适用于当前应用中的窗口小部件,并且将无法访问无窗口窗口小部件(也称为小工具)。