【问题标题】:Get color scheme from GTK从 GTK 获取配色方案
【发布时间】:2018-06-04 16:48:52
【问题描述】:

我正在使用 Python 3 和 GTK3 开发桌面应用程序。

我需要一个按钮来改变悬停时的背景颜色,可以这样做:

self.uploadbutton.modify_bg(Gtk.StateType.PRELIGHT, self.color)

到目前为止,我定义了一种与我自己的主题相匹配的 RGB 颜色,但由于我必须发布此代码,我想将该颜色更改为已建立的主题颜色之一。

在网上搜索,我找到了there's a way to do it with GTK2,但是从 GTK 3.8 版本开始,gtk-color-scheme 属性一直是deprecated

有没有其他方法可以在不使用此属性的情况下尊重用户主题颜色?

【问题讨论】:

    标签: python python-3.x gtk pygtk gtk3


    【解决方案1】:

    目前我找到了两种方法。它们都不是您问题的答案,因为据我所知,在 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())
    

    解析主题不在这个问题范围内。

    【讨论】:

    • 一个月过去了,没有其他人给出其他答案,我会将您的答案标记为已接受,感谢您的时间朋友:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2010-12-28
    • 2012-02-12
    • 2012-07-09
    • 2018-03-27
    • 1970-01-01
    相关资源
    最近更新 更多