在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应用程序失败正在运行。)
答案 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])