1

我有多个应用程序,每个应用程序都有一个来自不同技术的 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

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

4

1 回答 1

1

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

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

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


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

于 2012-04-09T05:57:24.023 回答