Substituir configurações de temas de gnome-settings-Daemon no GTK
Pergunta
Em um aplicativo PYGTK, estou usando RC_PARSE_STRING para ajustar a aparência da minha GUI. (Principalmente para torná -lo mais nativo no Windows e tema widgets individuais.) Isso, por exemplo, mudaria o tema do ícone para o meu aplicativo:
gtk.rc_parse_string("""
gtk-icon-theme-name = "Galaxy"
""")
Isso funciona no Windows, mas só funciona no Linux quando o Gnome-Settings-Daemon não está em execução. Como substituo as configurações do tema feitas por gnome-settings-Daemon? (Somente no meu aplicativo, sem alterar as configurações em todo o sistema!)
(A propósito, o mesmo problema ocorre quando você tenta tema um aplicativo individual, configurando GTK2_RC_FILES
. Ele funciona para aplicativos não nativos como o OpenOffice, mas falha nos aplicativos GNOME nativos assim que o daemon das configurações estiver em execução.)
Solução
Acabei descobrindo como fazer isso. Para substituir o tema do ícone:
settings = gtk.settings_get_default()
settings.set_string_property("gtk-icon-theme-name", "galaxy", "")
Há uma lista de todas as configurações possíveis no Documentação do GTKSettings.
Se você deseja empacotar o tema do ícone com seu aplicativo, adicione o diretório de script ao caminho da pesquisa de ícones antes de alterar a propriedade:
theme = gtk.icon_theme_get_default()
theme.prepend_search_path(sys.path[0])