Car*_*nte 6 python gtk pygtk python-3.x gtk3
我正在使用Python 3和GTK3开发桌面应用程序.
我需要一个按钮来改变悬停时的背景颜色,可以这样做:
self.uploadbutton.modify_bg(Gtk.StateType.PRELIGHT, self.color)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我定义了一个与我自己的主题相匹配的RGB颜色,但是由于我必须发布此代码,我想将该颜色更改为已建立的主题颜色之一.
在网上搜索,我发现有一种方法可以用GTK2来实现,但是从GTK的3.8版开始,该gtk-color-scheme属性已被弃用.
有没有其他方法来尊重用户主题颜色而不使用此属性?
目前我找到了两种方法。它们都不是您问题的答案,因为据我了解,GTK3 中每个元素都可以有自己的样式(包括颜色)。
第一个是官方的,它说不要弄乱主题,除非你已经测试过它们并知道你的修改会是什么样子。我认为这是最好的解决方案,因为在编译时尚不清楚您是否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())
Run Code Online (Sandbox Code Playgroud)
解析主题不在这个问题之内。
| 归档时间: |
|
| 查看次数: |
454 次 |
| 最近记录: |