c - X 服务器、客户端、窗口管理器中的菜单栏

标签 c x11 xlib

最近我正在使用 X11 编写一个简单的窗口管理器,只是为了了解更多!现在我想知道:

  1. 如何向窗口添加菜单栏? (写申请时)

  2. 窗口管理器如何检测、管理和显示窗口菜单栏?

最佳答案

How can I add a menubar to a window?

应该使用 X 工具包,例如 Qt 或 Gtk,但原则上可以通过像任何其他窗口内容一样绘制菜单栏来构建菜单栏。当然,后者会非常乏味且容易出错,但它是可行的(最终)。

How window managers detects, manage and show windows menubar?

他们通常不会。特定的 WM 可能通过 WM 和客户端都应支持的某种非标准协议(protocol)了解客户端菜单栏。 ICCCM中没有菜单栏相关的API 。 desktop.org WM specs中有菜单相关的API但这些涉及撕下菜单和弹出菜单,而不是菜单栏本身。 X 工具包已经适本地处理了这些问题,因此应用程序编写者不应该做任何特殊的事情。

关于c - X 服务器、客户端、窗口管理器中的菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47564506/

相关文章:

c - 无法将文件内容复制到缓冲区

c - 使用 JSON 数据

python-xlib - 如何确定性地判断显示输出是处于扩展模式还是镜像模式

python xlib xgrabkey keyrelease 事件未触发

c - X11 - Xrandr 给了我假监视器

在 C 中创建一个要求输入和输出的函数,然后在 main 中调用该函数?

c++ - 结构 DIR 的前向声明

linux - .NET Core : using System. Drawing.Common on Linux in Docker - "Could not open display"错误

winforms - 单控制台应用程序 : Winforms Method Throws Exception On Linux Without X

x11 - 查找免费的 X11 显示器编号