从 GTK 获取配色方案
Get color scheme from GTK
我正在使用 Python 3 和 GTK3 开发桌面应用程序。
我需要一个按钮来改变鼠标悬停时的背景颜色,可以这样做:
self.uploadbutton.modify_bg(Gtk.StateType.PRELIGHT, self.color)
到目前为止,我定义了一种与我自己的主题相匹配的 RGB 颜色,但由于我必须发布此代码,我想将该颜色更改为已建立的主题颜色之一。
通过网络搜索,我找到了 , but since version 3.8 of GTK, the gtk-color-scheme
property has been deprecated。
有没有其他方法可以在不使用此 属性 的情况下尊重用户主题颜色?
目前我找到了两种方法。它们都不是你问题的答案,因为据我所知,在 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())
解析主题不在本题范围内。
我正在使用 Python 3 和 GTK3 开发桌面应用程序。
我需要一个按钮来改变鼠标悬停时的背景颜色,可以这样做:
self.uploadbutton.modify_bg(Gtk.StateType.PRELIGHT, self.color)
到目前为止,我定义了一种与我自己的主题相匹配的 RGB 颜色,但由于我必须发布此代码,我想将该颜色更改为已建立的主题颜色之一。
通过网络搜索,我找到了 gtk-color-scheme
property has been deprecated。
有没有其他方法可以在不使用此 属性 的情况下尊重用户主题颜色?
目前我找到了两种方法。它们都不是你问题的答案,因为据我所知,在 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())
解析主题不在本题范围内。