2010-10-18 23 views
0

J'ai commencé à travailler avec GTK + et Vala et j'ai du mal à trouver de la documentation sur la création de boutons personnalisés (des boutons totalement nouveaux). En fait, maintenant que j'y pense, chaque application GTK + a cette apparence distincte qui laisse croire qu'il s'agit d'une application GTK +. Est-il difficile de créer un tout nouveau look pour mon application si je décide d'utiliser GTK +?GTK + peau spécifique à l'application possible?

Répondre

1

Vous pouvez utiliser la variable d'environnement GTK2_RC_FILES pour attribuer un thème spécial à (uniquement) votre application.

Par exemple, vous pouvez créer une entrée de commandes (Windows) comme ceci:

set GTK2_RC_FILES=%GTK_HOME%\share\themes\slickness-black\gtk-2.0\gtkrc 
launch.exe 

ou sous Linux (ont pas essayé celui-là):

env GTK2_RC_FILES=/usr/share/themes/slickness-black/gtk-2.0/gtkrc ./launch 

Astuce: Ne pas faites confiance à GTK_HOME pour être défini, utilisez plutôt le chemin absolu de l'installation de GTK +. Si vous installez un thème spécial avec votre application, il peut être possible d'utiliser un chemin relatif (relatif au chemin d'installation de votre application). Ensuite, vous devez vous assurer que le thème est pris en charge par l'un des moteurs de thème les plus courants, car tous ne sont généralement pas installés (en particulier sur Windows, où les installateurs GTK sont en désordre).

3

Cela a été rendu intentionnellement difficile, parce que "ce look GTK distinct" est le point essentiel. Les applications GTK accordent généralement beaucoup d'importance à la convivialité, à l'accessibilité et à l'expérience utilisateur. Vous, le programmeur d'applications, devez vous concentrer sur le contenu de votre application et laisser l'utilisateur choisir un thème qui lui plait. Si vous créez des boutons personnalisés, ils peuvent être trop étroits pour s'adapter aux étiquettes traduites pour un utilisateur utilisant votre application dans une autre langue. Ou peut-être que vos boutons personnalisés ont l'air vraiment horrible sur la couleur d'arrière-plan préférée de quelqu'un.

1

@ gtksharp:

string fileName = @"/usr/valapp/gtkrc3"; Gtk.Rc.AddDefaultFile(fileName); Gtk.Rc.Parse(fileName);