bonjour,
j'ai créé une appli gtk avec des boutons, mais je souhaite changer la forme des boutons. Est-ce possible ? Comment ?
Merci pour votre aide
zk
Version imprimable
bonjour,
j'ai créé une appli gtk avec des boutons, mais je souhaite changer la forme des boutons. Est-ce possible ? Comment ?
Merci pour votre aide
zk
La forme des boutons et de pas mal d'autres widgets sont intimement liées au thème et gestionnaire de bureau en général. Alors si tu veux un bouton rond en lieu et place d'un bouton rectangulaire, je pense que ca va être très difficile voir impossible directement.
La seule méthode que j'entrevois est de créer de toute pièce ton propre GtkWidget avec le dessin que tu veux. Il te suffira de le faire hériter directement d'un GtkButton pour obtenir toutes les propriétés nécessaires.
Bonsoir,
je suis intéressé par la méthode que tu proposes mais pour l'instant je ne vois pas vraiment comment procéder.
Peux-tu m'en dire un peu plus ?
Merci
zk
Pour commencer regardes ce tutoriel pour créer un GtkWidget personnalisé.
Autre alternative: passer par un moteur de thèmes, si la forme des boutons n'est pas trop altérée (par exemple des boutons rectangulaires aux coins arrondis)
http://www.mail-archive.com/gtk-app-.../msg10616.html
Si la forme est trop altérée (boutons ronds par exemple), alors il faut semble-t-il créer son propre widget.
Malheureusement, ce tutoriel n'est plus à jour, il utilise encore tous les GtkObject, GtkType, qui sont complètement obsolètes :aie:Citation:
Un de ces quatre, faudrait penser à le mettre à jour.
J'ai aussi, il y a quelques temps j'ai cherché comment on crée ses propres widgets. Perso comme j'étais motivé, j'ai lu le manuel de GObject et en même temps, j'adaptais le code du tuto avec le manuel :D
Je me pose une question similaire, mais peut-être plus simple.
J'utilise gtk_check_button_new_with_label () et je souhaiterai maitriser la taille et la place en hauteur de l'indicateur pour tenir moins de place.
Mais la propriété "indicator-size" est seulement "read".
Existe-t-il un moyen simple pour la rendre aussi "write" ?
J'ai jeté un oeil sur le code (Gtk+-2.12) et je pense qu'il faut pouvoir agir sur la variable "indicator_size", mais ce n'est évident pour moi de savoir comment coder cela proprement.
PV
J'ai regardé dans les parents des gtkcheckbutton mais il n'y a rien. J'ai bien peur que tu ne puisses pas le modifier.
D'autres pourront peut être t'apporter d'autres réponses moins négatives ;).
Non, pas vraiment... La propriété est en lecture seule, et une fois l'objet construit c'est impossible à changer. On ne peut pas non plus récupérer le style actuel et le réinstaller (avec gtk_widget_class_install_style_property) en indiquant des droits lecture/écriture, cela sera refusé car la propriété existe déjà. Seule solution pour ne pas avoir à patcher GTK+:
Créer une classe dérivée de GtkCheckButton. Celle ci devra soit créer la propriété à la place de GtkCheckButton en la définissant comme en lecture/écriture (G_PARAM_READWRITE au lieu de G_PARAM_READWRITE),
ou bien définir une autre valeur par défaut en changeant la valeur de INDICATOR_SIZE.
source: http://git.gnome.org/browse/gtk+/tre...ckbutton.c#n62
Merci de ta réponse liberforce.
Je vais essayer de mettre en oeuvre ta solution
PV