带有Gtk的Mac风格连接按钮(分段控制)

带有Gtk的Mac风格连接按钮(分段控制),gtk,Gtk,我已经在ubuntu软件中心看到了这一点,还有一些gnome应用程序 如果两个按钮看起来像一个带一条线的长方形,这是如何实现的?在GTK 3.0及更高版本中,使用内联工具栏样式类或链接样式类 #!/usr/bin/env python from gi.repository import Gtk button_names = [ Gtk.STOCK_ABOUT, Gtk.STOCK_ADD, Gtk.STOCK_REMOVE, Gtk.STOCK_QUIT] b

我已经在ubuntu软件中心看到了这一点,还有一些gnome应用程序


如果两个按钮看起来像一个带一条线的长方形,这是如何实现的?

在GTK 3.0及更高版本中,使用
内联工具栏
样式类或
链接
样式类

#!/usr/bin/env python

from gi.repository import Gtk

button_names = [
    Gtk.STOCK_ABOUT,
    Gtk.STOCK_ADD,
    Gtk.STOCK_REMOVE,
    Gtk.STOCK_QUIT]
buttons = [Gtk.ToolButton.new_from_stock(name) for name in button_names]

toolbar = Gtk.Toolbar()
for button in buttons:
    toolbar.insert(button, -1)
style_context = toolbar.get_style_context()
style_context.add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR)

window = Gtk.Window()
window.set_size_request(200, 50)
window.add(toolbar)
window.connect('delete-event', Gtk.main_quit)
window.show_all()

Gtk.main()

Fwiw,因为我最近有同样的问题,这里有另一个答案,引用了最新的引文,并使用C而不是一些包装器。(我使用GTKmm,但我觉得我们应该参考本机C API,除非明确说明了包装器。)

我想实现同样的目标,最终在官方网页上偶然发现了答案。这种效果是通过将目标
按钮
放在
容器
中,并为后者提供链接的CSS类来实现的。
(该页面说使用
是正常的,但由于
可能很快就会被弃用,
网格
无论如何都是优越的…使用
网格

因此:

该链接还讨论了我们可以对
GtkButton
s进行的一些其他方便的修饰,包括类建议操作和破坏性操作


对于类似的问题,浏览(A)实现您想要复制的应用程序的源代码和(B)Adwaita主题CSS的源代码非常有说明性。

谢谢您的回答,我感谢您花费的时间。尽管我感到不舒服,但我知道答案,我以前也看过,但发现很难。我现在唯一能上网的就是通过手机,而且用手机上网很麻烦。我希望有一个开发人员wiki来处理这类事情。我很高兴与大家分享我来之不易的GTK知识。做任何超出基础的事情都是非常困难的。这是一种痛苦,因为缺乏开发资源,而且知道我有什么问题的人更少。是的,很多新的gnome配置对话框都在+/-框的地方。我很累,快要睡觉了,但我肯定我在别的地方看到过。
GtkWidget *const grid = gtk_grid_new ();
GtkStyleContext *const context = gtk_widget_get_style_context (grid);
gtk_style_context_add_class (context, "linked");
/* Add your Buttons to the Grid */