在使用Glade创建的Python GTK3程序中导入CSS文件

在使用Glade创建的Python GTK3程序中导入CSS文件,python,css,python-3.x,user-interface,gtk,Python,Css,Python 3.x,User Interface,Gtk,我尝试查找有关添加彩色按钮小部件的信息。我尝试将建议的操作添加为类,但按钮仍然是灰色的。所以我想用自己的样式信息编写自己的css文件。 我正在使用glade创建glade文件,并根据main.py中的文件构建gui 在我的源代码树中,css文件应该放在哪里?如何导入它?这里有一个HowDoI指南: 在Python中,您必须首先导入Gdk: gi.require_version('Gdk', '3.0') from gi.repository import Gdk 然后可以在启动时设置CSS:

我尝试查找有关添加彩色按钮小部件的信息。我尝试将
建议的操作添加为类,但按钮仍然是灰色的。所以我想用自己的样式信息编写自己的css文件。
我正在使用glade创建glade文件,并根据main.py中的文件构建gui


在我的源代码树中,css文件应该放在哪里?如何导入它?

这里有一个HowDoI指南:

在Python中,您必须首先导入Gdk:

gi.require_version('Gdk', '3.0')
from gi.repository import Gdk
然后可以在启动时设置CSS:

screen = Gdk.Screen.get_default()
provider = Gtk.CssProvider()
provider.load_from_path("/path/to/style.css")
Gtk.StyleContext.add_provider_for_screen(screen, provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
这里我建议使用绝对路径。如果使用相对路径,如果工作目录不是项目的目录,则会遇到问题。例如,如果使用相对路径,这将不起作用:

cd somedirectory
python /home/user/project/main.py
# Error: cannot find style.css
注意:当然,背景色属性仅在没有填充背景的背景图像集时有效。Adwaita主题在按钮上设置背景图像。因此,请删除它:

button {
  background: none;
  background-color: red;
}

这里有一个HowDoI指南:

在Python中,您必须首先导入Gdk:

gi.require_version('Gdk', '3.0')
from gi.repository import Gdk
然后可以在启动时设置CSS:

screen = Gdk.Screen.get_default()
provider = Gtk.CssProvider()
provider.load_from_path("/path/to/style.css")
Gtk.StyleContext.add_provider_for_screen(screen, provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
这里我建议使用绝对路径。如果使用相对路径,如果工作目录不是项目的目录,则会遇到问题。例如,如果使用相对路径,这将不起作用:

cd somedirectory
python /home/user/project/main.py
# Error: cannot find style.css
注意:当然,背景色属性仅在没有填充背景的背景图像集时有效。Adwaita主题在按钮上设置背景图像。因此,请删除它:

button {
  background: none;
  background-color: red;
}

工作起来很有魅力。对于google finders:我从当前目录+我的相对css路径生成了绝对路径。工作起来很有魅力。对于google finders:我从当前目录+我的相对css路径生成了绝对路径。