有没有办法使用X11 / Xt从父窗口返回所有小部件?

时间:2019-01-08 21:19:51

标签: x11 xlib motif

我正在直接使用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,但正如预期的那样,这导致了段错误。

1 个答案:

答案 0 :(得分:0)

您可以从窗口树中获取大多数小部件。您可以使用“ XtWindowToWidget”将windowID转换为小部件。这种方法适用于当前应用中的窗口小部件,并且将无法访问无窗口窗口小部件(也称为小工具)。