gpt4 book ai didi

c++ - 桌面集成应用程序(类似桌面小部件)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:34 24 4
gpt4 key购买 nike

我目前正在考虑为我的个人系统编写桌面集成应用程序的想法,它应该像通常的桌面小部件引擎(screenlets、gdesklets、google gadgets)一样工作。它应该让我从互联网上全面了解有关我的系统的不同信息,并且最终应该在我的桌面上可视化它们。它应该集中我所有的日常必需信息。

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

一个很好的例子就是附加 libcario 对绘图的支持。我还会选择更大的 gui 工具包,如 GTK+ 或 QT。直接使用更复杂的 X11 API 接口(interface)也是一种选择。首选语言是 C 和 C++。

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

最佳答案

有两种构建无边框窗口的方法:(1) 完全绕过窗口管理器,(2) 使用窗口管理器。

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

第二种方法涉及设置窗口属性(如 xprop),称为 WM 提示。如果你想用原始的 Xlib 来做,你需要研究 ICCCM为了那个原因。大多数工具包(如 gtk+)都有用于设置 WM 提示的 API。

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

希望这对您有所帮助。

关于c++ - 桌面集成应用程序(类似桌面小部件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com