Gtk+:如何绘制自定义 Window 边框,如 Chrome 或 Steam

Gtk+: How to Draw Custom Window Borders Like Chrome or Steam

我想知道是否可以在 Gtk 中使用 Cairo 绘制(即设计)window 框架,以便使用 Cairo API 来装饰表面,例如添加渐变.

我如何淡化 GTK 装饰并使用 Cairo 之类的东西重新设计它们?

你必须写一个window manager. An example of a window manager (now obsolescent) that used GTK and Cairo to draw its window decorations was Metacity

通常 Linux window 装饰(边框、标题栏、关闭和最小化按钮等)由 Window 管理器绘制,这有助于在不同的环境中保持相似的外观和行为windows.

但是,应用程序可能会向 window 管理器发出信号,表明它想要禁用 window 管理器提供的装饰并绘制自己的装饰。在 Gtk+ 中,这可以通过在 GtkWindow 上调用 gtk_window_set_decorated,然后使用 Cairo 绘制自己的边框来实现。