我已经在ubuntu软件中心看到了它,并且使用了一些gnome应用程序。
如果两个按钮看起来像一个带有直线的矩形,那么这是怎么做的?
答案 0 :(得分:1)
在GTK 3.0及更高版本中,使用INLINE_TOOLBAR
样式类或LINKED
样式类。
#!/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()
答案 1 :(得分:0)
Fwiw,因为我最近有同样的问题,这是另一个答案,其中包含最新的引用并使用C而不是一些包装。 (我使用GTKmm,但我觉得除非明确说明了包装,否则我们应该引用本机C API。)
我想在官方页面HowDoI: Buttons找到同样的事情并最终偶然发现答案。通过将目标Button
放入Container
并为后者提供CSS类链接来实现此效果。(该页面说明使用了Box
是正常的,但由于Box
可能会很快弃用,Grid
无论如何都会优越......使用Grid
。
所以:
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 */
该链接还讨论了我们可以对GtkButton
进行的其他一些方便的修饰,包括建议操作和破坏性操作类。
对于类似的问题,浏览(A)执行您想要复制的应用程序和(B)Adwaita主题CSS的源代码非常具有说明性。