如何在GTK+;中设置标题栏关闭按钮的主题;3.

如何在GTK+;中设置标题栏关闭按钮的主题;3.,gtk,themes,gtk3,Gtk,Themes,Gtk3,我想用所谓的“标题栏”更改GTK+3窗口上关闭按钮的样式,在这里,窗口呈现时没有装饰,GTK由标题栏和小部件组成 “X”关闭按钮是什么类型的元素,它属于什么CSS类(如果有的话) 请注意,这不是窗口管理器主题的一部分,而是由GTK+实际绘制的。2020-10-14编辑: 自GTK 3.14以来,gtkparasite已以GTK的名义集成到GTK中 原始答案: 您可以使用查找元素的类型和名称及其嵌套方式。这是一个GTK按钮,带有图标窗口关闭符号,样式类标题按钮(与标题上的其他按钮类相同),假设应

我想用所谓的“标题栏”更改GTK+3窗口上关闭按钮的样式,在这里,窗口呈现时没有装饰,GTK由标题栏和小部件组成

“X”关闭按钮是什么类型的元素,它属于什么CSS类(如果有的话)


请注意,这不是窗口管理器主题的一部分,而是由GTK+实际绘制的。

2020-10-14编辑:

自GTK 3.14以来,gtkparasite已以GTK的名义集成到GTK中

原始答案:


您可以使用查找元素的类型和名称及其嵌套方式。

这是一个GTK按钮,带有图标
窗口关闭符号
,样式类
标题按钮
(与标题上的其他按钮类相同),假设应用程序使用内置关闭按钮。

用于python

header = Gtk.HeaderBar()
header.set_show_close_button(False)

button = Gtk.Button()
button.set_relief(Gtk.ReliefStyle.NONE)
img = Gtk.Image.new_from_icon_name("window-close-symbolic", Gtk.IconSize.MENU)
button.set_image(img)
button.connect("clicked", Gtk.main_quit)
header.pack_end(button)

seperator = Gtk.Separator.new(Gtk.Orientation.VERTICAL)
header.pack_end(seperator)

#window/self.set_titlebar(header)

最小/最大/关闭按钮选择器:

headerbar.titlebar button.titlebutton.close
headerbar.titlebar button.titlebutton.maximize
headerbar.titlebar button.titlebutton.minimize
任何/每个单独的最小/最大/关闭按钮的选择器:

headerbar.titlebar > :last-child button.titlebutton
headerbar.titlebar > :last-child
整个最小/最大/关闭按钮组容器的选择器:

headerbar.titlebar > :last-child button.titlebutton
headerbar.titlebar > :last-child
最左侧按钮的选择器(通常但不总是应用程序按钮):

最左侧按钮容器的选择器:

headerbar.titlebar > :first-child

我在自己的主题中使用了这些选择器,您可以在此处查看相关代码:

。标题按钮是@jku:有没有关于可能使用的样式类的文档,或者你必须阅读一个小部件的源代码或者使用gtkparasite吗?没有文档和相关的文档,也没有稳定性保证,所以这个类甚至整个小部件可能会在下一个版本中消失(这不太可能,但只是指出了这一点)。整个小部件不会消失,它只会被弃用。弃用的内容会在新的主要版本发布后被删除(比如GTK 2)→ GTK 3转换)。我指的是关闭按钮:它的实现方式是GtkHeaderBar的内部细节。不能保证它是一个实际的GTK按钮。