Получить цветовую схему от GTK - PullRequest
0 голосов
/ 01 июня 2018

Я разрабатываю настольное приложение с использованием Python 3 и GTK3.

Мне нужна кнопка для изменения цвета фона при наведении, что можно сделать следующим образом:

self.uploadbutton.modify_bg(Gtk.StateType.PRELIGHT, self.color)

Дотеперь я определил цвет RGB, соответствующий моей собственной теме, но, поскольку мне нужно выпустить этот код, я бы хотел изменить этот цвет на один из установленных цветов темы.

При поиске в Интернете я обнаружил есть способ сделать это с GTK2 , но начиная с версии 3.8 GTK свойство gtk-color-scheme устарело устарело .

Есть ли другой способ уважать цвета пользовательской темы без использования этого свойства?

1 Ответ

0 голосов
/ 04 июня 2018

Пока я нашел два пути.Они оба не являются ответом на ваш вопрос, потому что, насколько я понимаю, в GTK3 каждый элемент может иметь свой собственный стиль (включая цвет).

Первый - official иговорит не связываться с темами, если вы не проверили их и не знаете, как именно будут выглядеть ваши модификации.Я думаю, что это лучшее решение, поскольку во время компиляции неясно, будет ли ваш self.color выглядеть нормально или совершенно нечитабельно.


Второе решение - получить полный CSS и проанализировать его самостоятельно.

    gset = Gtk.Settings.get_default ()
    themename = gset.get_property ("gtk-theme-name")
    prefdark = gset.get_property ("gtk-application-prefer-dark-theme") # it's a boolean
    cprov = Gtk.CssProvider.get_named (themename)
    print (cprov.to_string())

Разбор темы находится за пределами этого вопроса.

...