如何将这些 GTK 按钮绘制成一个组?

How do I make these GTK buttons that are drawn together in a group?

GTK 有一种方法可以将一组按钮绘制在一起,这样它们看起来就像一个大按钮,中间有分隔线,而不是分开绘制的按钮。这对于将具有相似功能的按钮绘制在一起很有用。

这是来自 GTK 检查器的示例,其中它们似乎是特定的切换按钮,只能选择一个:

来自 Glade 的另一个示例,其中每个按钮代表一个小部件类别并打开一个菜单:

这种按钮样式叫什么,如何制作它们?

GTK Inspector 示例显示 GtkStackSwitcher, a special widget used to control the GtkStack(用于页面切换)。

一般来说,要实现一组按钮的这种视觉效果,使用GtkButtonBox,布局样式设置为GTK_BUTTONBOX_EXPAND。

Buttons expand to fill the box. This entails giving buttons a "linked" appearance, making button sizes homogeneous, and setting spacing to 0

您还可以手动向任何带有按钮的容器添加 "linked" 样式:

GtkStyleContext *context;
...
context = gtk_widget_get_style_context(button_box);
gtk_style_context_add_class(context, GTK_STYLE_CLASS_LINKED);

HowDoI/Buttons(第"Linked buttons"段)