在gnome 3应用程序中,某些按钮通过着色背景突出显示,而不是普通按钮的灰色。使用标准Adwaita主题时,这些按钮的颜色不同,但也可以在各种其他主题中实现。以下是Adwaita和Flat Plat主题的普通按钮和彩色按钮的示例。
我希望能够实现这些"重要按钮"在我的Gtk3应用程序中。在研究如何做到这一点时,我在主题文件中发现了这些"重要按钮"有一个名为needs-attention
的特殊CSS类。然后我尝试将我的按钮的CSS类设置为needs-attention
。然而,这并没有奏效。我还有一个灰色的标准按钮。为了演示我做了什么,我附加了一个最小的脚本和正在运行的程序的屏幕截图。 "重命名"按钮应突出显示,就像上面的屏幕截图一样。我该怎么做?
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class ButtonWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Needs Attention Button")
self.set_border_width(10)
hbox = Gtk.Box(spacing=6)
self.add(hbox)
button = Gtk.Button.new_with_label("Remove")
hbox.pack_start(button, True, True, 0)
button = Gtk.Button.new_with_mnemonic("Rename")
button.get_style_context().add_class("needs-attention")
hbox.pack_start(button, True, True, 0)
win = ButtonWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
答案 0 :(得分:1)
答案 1 :(得分:1)
GNOME的Adwaita主题已为预建的操作预定义了两个类:
suggested-action
destructive-action
您可以在GNOME Wiki HowDoI/Buttons上阅读:
虽然大多数按钮都是灰色的,但它变得更加时尚 强调按钮是建议的动作,给他们一个 不同的颜色。在Adwaita主题中,颜色为蓝色。 ... 最近,添加了另一个危险行为的样式类 好吧:'破坏性行动'。 Adwaita主题使用红色按钮 标记为。
在Adwaita上他们分别看起来像这样:
预定义的needs-attention
类,它是一个Gtk.Stack / GtkStack子属性,它在Gtk.StackSwitcher中呈现,以引起用户注意,如GtkStack API Reference中所述:
“需要注意”的子属性
“needs-attention” gboolean
设置一个标志,指定子项是否需要用户注意。 GtkStackSwitcher使用它来改变外观 页面需要注意时的相应按钮,而不是 现在的。
可以在gtk3-widget-factory
程序中看到由此产生的视觉辅助,作为需要注意的孩子的蓝点(假设Adwaita主题):