在GTK中覆盖gnome-settings-daemon的主题设置

时间:2010-09-30 11:19:56

标签: gtk pygtk theming

在pygtk应用程序中,我使用rc_parse_string来调整GUI的外观。 (主要是为了让它在Windows下更加原生,以及主题单独的小部件。)例如,这将改变我的应用程序的图标主题:

    gtk.rc_parse_string("""
        gtk-icon-theme-name = "Galaxy"
    """)

这适用于Windows,但只有在gnome-settings-daemon未运行时才能在Linux下运行。如何覆盖gnome-settings-daemon所做的主题设置? (仅在我的应用程序中,不更改系统范围的设置!)

(顺便说一下,当您尝试通过设置GTK2_RC_FILES来设置单个应用程序的主题时会出现同样的问题。它适用于OpenOffice等非本机应用程序,但是一旦设置守护程序就会对本机gnome应用程序失败正在运行。)

1 个答案:

答案 0 :(得分:1)

我最终发现了如何做到这一点。要覆盖图标主题:

settings = gtk.settings_get_default()
settings.set_string_property("gtk-icon-theme-name", "galaxy", "")

GtkSettings documentation中列出了所有可能的设置。

如果要将图标主题打包到应用程序,请在更改属性之前将脚本目录添加到图标搜索路径:

theme = gtk.icon_theme_get_default()
theme.prepend_search_path(sys.path[0])