Я не уверен, как получить его из gtk + -2.0, если только вы не используете чистую среду gtk + -2.0, и в этом случае я думаю, что старые методы GtkStyle работают.например, если вы не используете среду Gtk-3.0, такую как gnome-shell
import gi
# make sure you use gtk+-2.0
gi.require_version('Gtk', '2.0')
from gi.repository import Gtk
window = Gtk.Window()
...
style = window.get_style()
print style.lookup_color('fg_color')
Я думаю, что она все равно должна работать в среде gtk + -2.0.Я не знаю наверняка, так как моя система работает под управлением gnome-shell, и не могу легко попробовать это.
Однако этот метод устарел и заменен на GtkStyleContext.Если я использую приведенный выше код в среде gtk + -3.0, такой как gnome-shell, он запустится, но не предоставит мне информацию, которая мне нужна.Я получаю
(False, <Gdk.Color(red=0, green=0, blue=0)>)
РЕДАКТИРОВАТЬ: Оглядываясь назад, я думаю, что выше все еще дает правильную информацию.Цвет для fg_color не найден, о чем свидетельствует первая запись в результате кортежа, которая является False.Также окно должно быть видимым, чтобы можно было найти цвета.
Если я хочу получить информацию о цвете, я хочу использовать новый GtkStyleContext, например
import gi
# make sure you use gtk+-3.0
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
window = Gtk.Window()
...
style_context = window.get_style_context()
print style_context.lookup_color('fg_color')
, это даст мне реальные данные, который говорит мне, что 'fg_color' был найден, потому что первая запись в кортеже - True.
(True, <Gdk.Color(red=0.000000, green=0.000000, blue=0.000000, alpha=1.000000)>)
Я надеюсь, что это отвечает на ваш вопрос.