![](/img/trans.png)
[英]How do I make it so that my button stays highlighted until I do a second click on my grid
[英]How do I make a Gtk button "highlighted"?
我注意到在 Ubuntu 上的许多系统对话框中,有一个按钮(通常是Open 、 Save等)与正常颜色不同。 而且,这些按钮的颜色会随着系统主题而变化; 在 Adwaita,它们是蓝色的。 在雅鲁,它们是绿色的。 所以不,我不是在问如何将按钮的背景设置为特定颜色。
我的问题是,如何根据当前主题使按钮“突出显示”而无需手动设置颜色? 甚至有可能在 Python 中做到这一点吗? 我查看了Gtk
、 Gtk.Dialog
、 GtkSource
、 Gdk
、 GLib
和Pango
,但一无所获。 理想情况下,该解决方案适用于任何按钮,而不仅仅是对话框中的按钮。
您可以使用StyleContext
来突出显示小部件。 GTK构件如Gtk.Button
从继承Gtk.Widget
可以得到其StyleContext
通过调用get_style_context 。 然后,您可以通过调用add_class将class
(一个 str)添加到上下文中。 gtk 本身提供了suggested-action
和destructive-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.