无法将自定义主题应用于PyGObject应用程序

时间:2018-09-25 05:52:40

标签: css python-3.x themes gtk3 pygobject

我已经在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_pathGtk.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主题选择应该留给用户,但我不想对老板说不。

0 个答案:

没有答案