X11层管理器

时间:2012-04-09 05:49:30

标签: c++ user-interface x11 graphic

我有多个应用程序,每个应用程序都有一个来自不同技术的GUI。

我需要这样做 -

 1. Create n layers, one for each application, onto which applications draw.
 2. Have a layer manager which can perform operations on each of these layers
    (like re sizing, changing opacity etc. ) and then combine them to form a 
    single layer. 

有人可以就我应该如何处理这个问题提出想法吗? 什么API可以帮助我解决这个问题?我真的无法弄清楚我应该在谷歌上搜索什么。

实施语言:C ++

平台:Linux

此外,我想知道这些要求是否可以以独立于平台的方式实施?

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你需要某种简单的窗口管理器。

如果是这样,请尽量避免使用xlib,并使用QX11EmbedContainer。嵌入窗口并通过简单地显示/隐藏特定容器来形成图层非常简单。

这应该是一个独立于平台的解决方案(应该在不同的硬件上运行,但不适用于非Linux操作系统)。


由于您已经在使用QX11EmbedContainer,并且请求仅使用xlib(使用c ++),因此您需要使用XReparentWindowDisplay函数。这将在xlib标准的第9.1章中介绍(您可以查找here)。如何使用它应该非常简单。