GTK3:听主题变化
GTK3: listen to theme changes
我正在寻找一种方法,在 PyGObject 应用程序上,当有主题更改时得到通知。
我需要此通知,因为我正在使用 matplotlib
绘制图表,并且我将图表的文本颜色设置为当前 GTK3 主题的标准标签颜色:
temp_label = Gtk.Label()
scrolled_window.add(temp_label)
text_color = rgba_to_hex(temp_label.get_style_context().get_color(Gtk.StateType.NORMAL))
但是,当用户切换主题时,我需要获取新的标签颜色并重新绘制图表。
目前,从深色主题变为浅色主题会使标签变得不可读:
我发现最接近的是连接到 gtk-theme-name
:
Gtk.Settings.get_default().connect("notify::gtk-theme-name", self._on_theme_name_changed)
@staticmethod
def _on_theme_name_changed(settings, gparam):
print("Theme name:", settings.get_property("gtk-theme-name"))
我正在寻找一种方法,在 PyGObject 应用程序上,当有主题更改时得到通知。
我需要此通知,因为我正在使用 matplotlib
绘制图表,并且我将图表的文本颜色设置为当前 GTK3 主题的标准标签颜色:
temp_label = Gtk.Label()
scrolled_window.add(temp_label)
text_color = rgba_to_hex(temp_label.get_style_context().get_color(Gtk.StateType.NORMAL))
但是,当用户切换主题时,我需要获取新的标签颜色并重新绘制图表。
目前,从深色主题变为浅色主题会使标签变得不可读:
我发现最接近的是连接到 gtk-theme-name
:
Gtk.Settings.get_default().connect("notify::gtk-theme-name", self._on_theme_name_changed)
@staticmethod
def _on_theme_name_changed(settings, gparam):
print("Theme name:", settings.get_property("gtk-theme-name"))