Я разработал приложение на Ubuntu 16.04, используя PyGObject и Glade.Мой босс хочет, чтобы я его стилизовал, поэтому я решил, что это можно сделать с помощью тем Gnome.Я скачал пакет с этой страницы https://www.gnome -look.org / p / 1190851 / и пытался понять, как применить его к приложению.
Во-первых, используя приведенный ниже код из этого ответа Мне удалось изменить тему по умолчанию, используя темы, доступные в /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 и т. Д.).Поэтому я не смог перейти к использованию этого кода для применения пользовательской темы.
Во-вторых , я пытался использовать Gtk.CssProvider()
, как предложено в в этом ответе для применения таблицы стилей CSS для изменения темы.Я покопался в папке пользовательских тем и нашел файл css на ~/adapta-gtk-theme/Adapta-Amber/gtk-3.0/gtk.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
Как я могу применить этоПользовательская тема для моего приложения?
PS Я знаю , что выбор темы должен быть оставлен на усмотрение пользователя, но я не хочу отказывать своему боссу.