主题 GTK CSS 无法正常工作

问题描述 投票:0回答:2

我有一个具有以下布局的 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 { /* ... */}

如何将这种“类”选择器应用到代码和林间空地中的元素,我正在使用两者。

python css gtk themes gtk3
2个回答
0
投票

您可以为该对象(从 CustomClass 实现)提供一个名称,以便可以通过名称选择它。像这样:

main_scrolled_window = CustomScrolledwindow()
main_scrolled_window.set_name('main_scrolled_window')

然后,在CSS中:

'''
#main_scrolled_window{
    background-color: #f3f3f3;
}
'''

这样做还不错,尽管我不知道如何直接为自定义小部件类设置主题。


0
投票

这些对象取自上面的示例布局:

  • Gtk.Window
  • Gtk.Box
  • Gtk.ScrolledWindow
  • Gtk.ViewPort
  • Gtk.Grid
  • Gtk.Box
  • Gtk.ScrollBar

如果您查看 https://docs.gtk.org/gtk3/#classes 页面,您可以找到 GTK 3.0 类名称的列表。上述对象的类如下所示:

  • 窗户
  • 盒子
  • 滚动窗口
  • 视口
  • 网格
  • 盒子
  • 滚动条

这些类必须转换为小写才能用作 CSS 选择器,因此您将在 gtk.css 文件中使用这些选择器来定位布局中的这些对象:

  • 窗户
  • 盒子
  • 滚动窗口
  • 视口
  • 网格
  • 盒子
  • 滚动条

该页面上列出的所有其他类别也是如此。请注意,您可以单击列表中的任何类,然后转到其页面,其中详细介绍了该类的对象。您将获得祖先和后代、使用示例等信息。在所有情况下,该页面都将使用完整的对象名称。因此,例如,如果您单击列表中的 Window 类,则其页面上的信息是有关 Gtk.Window 对象的信息,但您可以使用 window CSS 选择器来设置该对象的样式。

© www.soinside.com 2019 - 2024. All rights reserved.