覆盖GTK中gnome设置守护进程的主题设置

覆盖GTK中gnome设置守护进程的主题设置,gtk,pygtk,theming,Gtk,Pygtk,Theming,在pygtk应用程序中,我使用rc_parse_字符串来调整GUI的外观。(主要是为了使它在Windows下看起来更原生,并为单个小部件设置主题。)例如,这将更改我的应用程序的图标主题: gtk.rc_parse_string(""" gtk-icon-theme-name = "Galaxy" """) 这可以在Windows下工作,但只有在gnome设置守护进程未运行时,它才能在Linux下工作。如何覆盖gnome设置守护进程所做的主题设置?(仅在我的应用程

在pygtk应用程序中,我使用rc_parse_字符串来调整GUI的外观。(主要是为了使它在Windows下看起来更原生,并为单个小部件设置主题。)例如,这将更改我的应用程序的图标主题:

    gtk.rc_parse_string("""
        gtk-icon-theme-name = "Galaxy"
    """)
这可以在Windows下工作,但只有在gnome设置守护进程未运行时,它才能在Linux下工作。如何覆盖gnome设置守护进程所做的主题设置?(仅在我的应用程序中,不更改系统范围的设置!)


(顺便说一句,当您试图通过设置
GTK2_RC_文件来设置单个应用程序的主题时,也会出现同样的问题。它适用于非本机应用程序,如OpenOffice,但在设置守护进程运行后,本机gnome应用程序就失败了。)

我最终找到了方法。要覆盖图标主题,请执行以下操作:

settings = gtk.settings_get_default()
settings.set_string_property("gtk-icon-theme-name", "galaxy", "")
中有所有可能设置的列表

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

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

我终于知道了怎么做。要覆盖图标主题,请执行以下操作:

settings = gtk.settings_get_default()
settings.set_string_property("gtk-icon-theme-name", "galaxy", "")
中有所有可能设置的列表

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

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