web-dev-qa-db-fra.com

Comment changer le thème GTK de mon application en cours d'exécution?

J'ai récemment remarqué que monodéveloppement, peut changer le thème GTK lors de l'exécution. Comment l'ajouter dans mon application Rapidement?

2
Tachyons

Si vous le souhaitez, vous pouvez consulter mon Article de blog sur Python, GTK et CSS

J'ai essayé de faire un petit article sur la façon de le faire (je l'ai également utilisé pour mon application rapidement).

2
wolfv

Vous pouvez utiliser Gtk.CssProvidor Pour charger un fichier css. Par exemple:

css_provider = Gtk.CssProvider()
css_provider.load_from_file("file_name.css")
screen = Gdk.Screen.get_default()
style_context = window.get_style_context()
style_context.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

Où "nom_fichier.css" est le fichier css que vous souhaitez charger (les thèmes dans ubuntu semblent être dans /usr/share/themes/THEME_NAME/gtk-3.0/) et window est le widget de fenêtre que vous utilisez. Si vous souhaitez charger css à partir d'une chaîne, vous pouvez utiliser css_provider.load_from_data(string_name.encode('UTF-8')) au lieu de css_provider.load_from_file("file_name.css")

Ressources:

1
Sam Bickley