繁体   English   中英

如何使 Gtk 按钮“突出显示”?

[英]How do I make a Gtk button "highlighted"?

我注意到在 Ubuntu 上的许多系统对话框中,有一个按钮(通常是OpenSave等)与正常颜色不同。 而且,这些按钮的颜色会随着系统主题而变化; 在 Adwaita,它们是蓝色的。 在雅鲁,它们是绿色的。 所以不,我不是在问如何将按钮的背景设置为特定颜色。

我的问题是,如何根据当前主题使按钮“突出显示”而无需手动设置颜色? 甚至有可能在 Python 中做到这一点吗? 我查看了GtkGtk.DialogGtkSourceGdkGLibPango ,但一无所获。 理想情况下,该解决方案适用于任何按钮,而不仅仅是对话框中的按钮。

您可以使用StyleContext来突出显示小部件。 GTK构件如Gtk.Button从继承Gtk.Widget可以得到其StyleContext通过调用get_style_context 然后,您可以通过调用add_classclass (一个 str)添加到上下文中。 gtk 本身提供了suggested-actiondestructive-action 您还可以定义自己的样式类。

以下是使用suggested aciton的示例。

import gi

gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

win = Gtk.Window()

box = Gtk.Box()
button1 = Gtk.Button(label="button1")
button2 = Gtk.Button(label="button2")
box.pack_start(button1, True, True, 0)
box.pack_start(button2, True, True, 0)

button1_style_context = button1.get_style_context()
button1_style_context.add_class('suggested-action')

win.add(box)
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM