首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >桌面集成应用程序(类似桌面小部件)

桌面集成应用程序(类似桌面小部件)
EN

Stack Overflow用户
提问于 2011-06-08 16:55:57
回答 2查看 1.7K关注 0票数 5

我目前正在考虑为我的个人系统编写一个桌面集成应用程序,它的行为应该类似于通常的桌面小部件引擎(screenlets,gdesklet,google gadgets)。它应该给我一个完整的概述,关于我的系统的不同信息,从互联网,并应该最终可视化他们在我的桌面上。它应该集中我所有日常所需的信息。

最简单的方法肯定是为一个已知的桌面小部件引擎编写我自己的小部件,但我更喜欢从头开始编写。因此,我目前正在寻找一些实现提示,如何在桌面上构建一个全局视图,而不是由窗口管理器装饰边框、标题栏和其他东西,并且没有背景色。不需要特殊的透明度X%效果,因为需要compiz.

一个很好的例子是conky,它为绘图提供了额外的libcario支持。我也会选择更大的gui工具包,比如GTK+或QT。直接使用更复杂的X11应用程序接口也是一种选择。首选的语言是C和C++。

如果有人可以分享他的知识,如果他已经在该领域有类似的经验,我将很高兴。

EN

回答 2

Stack Overflow用户

发布于 2011-06-08 18:44:37

有两种方法可以构建一个无边界窗口:(1)完全绕过窗口管理器,(2)使用窗口管理器。

第一个很简单,但有局限性(你必须自己管理窗口拖动和虚拟桌面上的放置)。这是通过创建一个带有override-redirect标志的窗口来完成的。

第二种方法涉及设置称为WM提示的窗口属性(如在xprop中一样)。如果您想使用原始Xlib来完成此任务,则需要研究ICCCM。像gtk+这样的大多数工具包都有用于设置WM提示的API。

对于简单的是或否的“透明性”,有一个XShape API (从技术上讲,这是一个扩展,也就是X11的一个可选部分,但它几乎存在于任何地方)。或者你可以创建一个背景设置为None的窗口(然而,这种方法在合成窗口管理器时可能会有问题,比如Compiz)。或者,您可以完全避开应用程序窗口,直接在(虚拟)根窗口上绘制。想必libcairo也会让你做同样的事情,但我对它并不熟悉。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2011-06-08 18:24:59

你没有说你的目标是哪个操作系统,但我假设是linux发行版。

首先,你的窗口管理器必须支持无边框和无装饰的窗口。

然后你需要选择语言(c和c++是完全不同的)。如果你选择c++,那么Qt接缝看起来是一个显而易见的选择。

对于Qt,很容易创建一个无边框窗口:Making a borderless window with for Qt

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6276376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档