GTK3:听主题变化

我正在寻找一种方法,在 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))

但是,当用户切换主题时,我需要获取新的标签颜色并重新绘制图形。


目前,从深色主题变为浅色主题会使标签变得不可读:

http://img3.mukewang.com/63e21af80001fd3904240600.jpg

慕斯王
浏览 114回答 1
1回答

回首忆惘然

我发现最接近的是连接到gtk-theme-name:Gtk.Settings.get_default().connect("notify::gtk-theme-name", self._on_theme_name_changed)@staticmethoddef _on_theme_name_changed(settings, gparam):    print("Theme name:", settings.get_property("gtk-theme-name"))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python