gpt4 book ai didi

linux - 如何在 FLTK 中编写面板任务栏以在 Linux 系统上使用

转载 作者:太空宇宙 更新时间:2023-11-04 04:28:32 31 4
gpt4 key购买 nike

我需要用 C/C++ 编写一个小应用程序来实现类似面板任务栏的东西,以在桌面窗口(特别是 Linux 系统上的 xorg 桌面)顶部显示信息。我需要避免 GUI 编程的臃肿和陡峭的学习曲线。

我的研究将我指向 GTK+/GTKmm 或 FLTK。看起来 FLTK 可能更容易掌握,并且最有可能提供具有最小依赖性的小型干净包。所以到目前为止我的研究都是基于 FLTK 的。

我一直在阅读一些内容,并正在努力找出如何编写一个基本程序,该程序将创建一个狭窄的未装饰窗口,该窗口覆盖显示器的宽度,从而最大化其他应用程序不会遮挡它。到目前为止我发现的 FLTK 教程(包括 FLTK 文档)仅实现了带有可在屏幕上移动边框的标准窗口。

我想首先在 FLTK(或 GTK+/GTKmm)中编写一个简单的程序,该程序在屏幕上创建一个 20 像素深的条,其中包含“hello world”消息。该栏的区域将保留在其他程序可以访问的区域之外,以便最大化另一个应用程序不会隐藏“hello world”消息。我认为这与 WM_STRUT_PARTIAL 属性有关,但我在 FLTK 中找不到有关此信息。

这样做部分是为了了解如何编写简单的 GUI 程序,部分是为了解决我的特定需求。

我正在寻找任何帮助/指导,让我朝着正确的方向开始。非常感谢。

最佳答案

starfry,我相信这不是一个简单的任务。问题是您的桌面(例如 GNOME2/Metacity)保留了该空间,并将其面板绘制在您想要放置栏的区域。 -

如果您确实希望您的托盘栏小程序基于 FLTK ,您必须将其“嵌入”到(GNOME)小程序中。很久以前我用SDL应用程序做过类似的事情,但我恐怕忘记了怎么做。我想到的第一件事就是以某种方式从 GNOME 小程序获取 XID,并以某种方式将其传递给 FLTK 部分,然后让 FLTK 完成剩下的工作...

当然,您可以使用其他桌面,例如 KDE ,或i3IceWM ,他们都有自己的处理托盘栏的方法(没有标准!)所以,请原谅我的“法语” - 这将是一个支持所有环境的 PITA...

如果我在 GNOME ,我会完全使用 GNOME/GTK 编写小程序。在这种情况下,请忘记 FLTK。这是我的建议。如果您以 KDE 为目标,则使用 KDE/QT 库来实现(Plasma 小部件将是您需要寻找的)。

但是,如果您仍然想使用 FLTK,请从 fltk::draw_into() 开始函数(在 FLTK 1.x 中可能称为 fl_draw_into())、fltk::xid() 及相关函数。

关于linux - 如何在 FLTK 中编写面板任务栏以在 Linux 系统上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6154683/

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