我已经在Ubuntu 16.04上使用PyGObject和Glade开发了一个应用程序。我的老板希望我对其进行样式化,因此我认为可以使用Gnome主题来完成。我从https://www.gnome-look.org/p/1190851/页下载了主题包,并一直试图了解如何将其应用于应用程序。
首先,使用this answer中的以下代码,通过使用/usr/share/themes/
中可用的主题,我设法修改了默认主题。
settings = gtk.Settings.get_default()
settings.set_property("gtk-theme-name", "Numix")
settings.set_property("gtk-application-prefer-dark-theme", False)
但是,对于我设置的任何主题(Adwaita / Raleigh / AgingGorilla等),该应用看起来都一样。因此,我无法继续使用此代码来应用自定义主题。
第二,我尝试按照this answer中的建议使用Gtk.CssProvider()
来应用CSS样式表来更改主题。我深入研究了自定义主题文件夹,并在~/adapta-gtk-theme/Adapta-Amber/gtk-3.0/gtk.css
上找到了一个css文件,尝试将其与Gtk.CssProvider.load_from_path
和Gtk.CssProvider.load_from_file
一起加载,但是没有用。
这是Gtk.CssProvider.load_from_path
Traceback (most recent call last):
File "./evaltool (copy).py", line 298, in <module>
e = Eval()
File "./evaltool (copy).py", line 45, in __init__
css_provider.load_from_path("~/adapta-gtk-theme/Adapta-Amber/gtk-3.0/gtk-dark.css")
GLib.Error: gtk-css-provider-error-quark: gtk-dark.css:1:78Failed to import: The resource at '/org/adapta-project/gtk-3.20/gtk-contained-dark.css' does not exist (2)
这是Gtk.CssProvider.load_from_file
Traceback (most recent call last):
File "./evaltool (copy).py", line 298, in <module>
e = Eval()
File "./evaltool (copy).py", line 45, in __init__
css_provider.load_from_file("~/adapta-gtk-theme/Adapta-Amber/gtk-3.0/gtk-dark.css")
TypeError: argument file: Expected Gio.File, but got str
如何将此自定义主题应用于我的应用程序?
P.S。 I know主题选择应该留给用户,但我不想对老板说不。