【问题标题】:Pointer to children window/s in x11x11 中指向子窗口的指针
【发布时间】:2018-12-18 11:31:15
【问题描述】:

如何从 x11 的根窗口获取指向子窗口的指针? 我使用了 XGetWindowAttributes(),但它没有任何指向子窗口的指针。 https://tronche.com/gui/x/xlib/window-information/XGetWindowAttributes.html

提前致谢。

【问题讨论】:

    标签: c x11 xlib


    【解决方案1】:

    您需要使用XQueryTree() 才能从任何窗口获取子级列表。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • @oguzismail 这个问题非常开放,但在不知道任何背景的情况下,我无法就这个问题进行辩论。要获取子列表,请使用 XQueryTree()。答案无所谓。
    • @FrodeTennebo 实际上这不是我想要的。我想知道是否有一个 window 属性是指向子窗口的指针。我不想打印窗口的孩子。
    • @Bmsbharadwaj 没有作为指向子窗口的指针的窗口属性。您必须查询树,这就是 XQueryTree() 所做的。
    【解决方案2】:

    是的,我发现(据我研究)在窗口属性中没有指向窗口的指针。

    我的主要目标是让一个窗口的孩子,比如 w1,作为另一个窗口的孩子,比如 w2。所以我想知道我们是否可以使用窗口指针来做到这一点。 但后来我发现这可以简单地使用 XReparentWindow() 函数来实现,如下所示:

    https://tronche.com/gui/x/xlib/window-and-session-manager/XReparentWindow.html

    无论如何,@FrodeTennebo,感谢XQueryTree() 的概念,它可用于打印特定窗口的所有子窗口。

    【讨论】:

    • 为了将来的参考,请直接针对您的主要目标,而不是通过您认为的问题。除了打印树之外,XQueryTree() 还有很多其他用途。实际上,这是最没用的用途,因为已经有一个xwininfo -tree 形式的工具。至于切换窗口的父级,XReparentWindow()是正确的方法。
    猜你喜欢
    • 2019-06-06
    • 2013-10-08
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2015-05-03
    • 2019-09-10
    相关资源
    最近更新 更多