Импорт файла CSS в программу Python GTK3, созданную с помощью Glade - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь найти информацию о добавлении цветного виджета кнопки. Я попытался добавить suggested-action как класс, но кнопка все еще серая. Поэтому я хочу написать свой собственный файл CSS с моей собственной информацией о стиле. Я использую glade для создания файла glade и создания графического интерфейса из этого файла main.py.

Где мне поместить файл css в дерево исходных текстов и как его импортировать?

1 Ответ

2 голосов
/ 15 октября 2019

Здесь есть руководство по HowDoI: https://wiki.gnome.org/HowDoI/CustomStyle

В 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

NOTE : конечно, свойство background-color работает только при наличии no background-image установить заполнение фона. Тема Adwaita устанавливает фоновое изображение на кнопках. Так что убери это:

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