我有一个具有以下布局的 Python/Gtk+3.0 应用程序
Gtk.Window
Gtk.Box
CustomClass : Gtk.ScrolledWindow
Gtk.ViewPort # created automatically
Gtk.Grid
Gtk.Box # many of this
Gtk.ScrollBar # created automatically
Gtk.ScrollBar # created automatically
现在我正在尝试为其设置主题,但它不起作用,我想更改我的 Customclass 的背景,但我想用 CSS 更改它。
我正在努力:
#CustomClass,
#CustomClass > GtkBox,
#CustomClass > GtkViewPort,
#CustomClass > GtkGrid,
GtkScrolledWindow GtkGrid {
background-color: #000;
}
在哪里可以找到主题化的良好参考?当我查看系统中安装的主题时,我会看到类似的内容
.custom-class { /* ... */}
GtkSomething.custom { /* ... */}
如何将这种“类”选择器应用到代码和林间空地中的元素,我正在使用两者。
您可以为该对象(从 CustomClass 实现)提供一个名称,以便可以通过名称选择它。像这样:
main_scrolled_window = CustomScrolledwindow()
main_scrolled_window.set_name('main_scrolled_window')
然后,在CSS中:
'''
#main_scrolled_window{
background-color: #f3f3f3;
}
'''
这样做还不错,尽管我不知道如何直接为自定义小部件类设置主题。
这些对象取自上面的示例布局:
如果您查看 https://docs.gtk.org/gtk3/#classes 页面,您可以找到 GTK 3.0 类名称的列表。上述对象的类如下所示:
这些类必须转换为小写才能用作 CSS 选择器,因此您将在 gtk.css 文件中使用这些选择器来定位布局中的这些对象:
该页面上列出的所有其他类别也是如此。请注意,您可以单击列表中的任何类,然后转到其页面,其中详细介绍了该类的对象。您将获得祖先和后代、使用示例等信息。在所有情况下,该页面都将使用完整的对象名称。因此,例如,如果您单击列表中的 Window 类,则其页面上的信息是有关 Gtk.Window 对象的信息,但您可以使用 window CSS 选择器来设置该对象的样式。