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

wer*_*her 1 css python gtk user-interface python-3.x

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

我必须将 css 文件放在我的源代码树中的什么位置以及如何导入它?

小智 6

这里有一个 HowDoI 指南:https ://wiki.gnome.org/HowDoI/CustomStyle

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

gi.require_version('Gdk', '3.0')
from gi.repository import Gdk
Run Code Online (Sandbox Code Playgroud)

然后你可以在启动时设置 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)
Run Code Online (Sandbox Code Playgroud)

这里我推荐使用绝对路径。如果使用相对路径,如果工作目录 不是项目目录,则会遇到问题。例如,如果您使用相对路径,这将不起作用:

cd somedirectory
python /home/user/project/main.py
# Error: cannot find style.css
Run Code Online (Sandbox Code Playgroud)

注意:当然,background-color属性仅在没有 填充背景的background-image集时才有效。Adwaita 主题设置按钮上的背景图像。所以删除它:

button {
  background: none;
  background-color: red;
}
Run Code Online (Sandbox Code Playgroud)