Bonjour
Comment faire pour changer la couleur de la police d'un gtk_link_button_new_with_label ? J'ai cherché... mais, je ne trouve pas.
Bonjour
Comment faire pour changer la couleur de la police d'un gtk_link_button_new_with_label ? J'ai cherché... mais, je ne trouve pas.
Modérateur Mageia/Mandriva Linux
Amicalement VOOotre
Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
Mes tutoriels : xrandr, algorigramme et C, xml et gtk...
Il faut faire ça en CSS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 GtkCssProvider *provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, "button { color: red; }", -1, NULL); gtk_style_context_add_provider (gtk_widget_get_style_context (button), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (provider);
Merci pour la réponse rapide, mais, ça ne marche pas... Il me semble que la raison est simple : c'est un lien. Il faut signaler quelque part que c'est la couleur d'un lien qu'on souhaite modifier.
J'ai essayé avec un fichier css qui me sert déjà à jouer avec les couleurs de fond de certains items. mais, je n'arrive pas à modifier la couleur de ce lien
Mon but est de mettre un texte noir cliquable.
Si tu es assez fou pour regarder mon code, c'est à la ligne 1643 du fichier modif_perso.c de http://troumad.org/Mes_regles/perso4_4.zip . Il y a juste un peu plus de 25000 lignes de code.
Modérateur Mageia/Mandriva Linux
Amicalement VOOotre
Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
Mes tutoriels : xrandr, algorigramme et C, xml et gtk...
Non désolé je n'ai pas le temps ni le courage de me plonger là-dedans
Ça ne fonctionne pas pour un GtkLinkButton en effet. Selon la doc, il est censé avoir une classe .link, mais si je mets .link { } ça ne fonctionne pas non plus. Dans une autre doc GTK d'exemples CSS, ils parlent d'un état (state), donc ça serait :link { }, mais ça ne marche pas non plus.
Le CSS… (dans GTK…)![]()
J'ai rajouté celà pour les tests :
Le bouton est bien repéré : les trois changements de couleur se font pour le fond. Mais, rien au niveau de la couleur du lien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 button.link { color : #000; background-color: rgba(100%,00%,00%,1); } button.link:hover { color : #f00; background-color: rgba(00%,100%,00%,1); } button.link:visited { color : #0f0; background-color: rgba(00%,00%,100%,1); }
Modérateur Mageia/Mandriva Linux
Amicalement VOOotre
Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
Mes tutoriels : xrandr, algorigramme et C, xml et gtk...
Bonsoir
J'arrête (pour le moment) mes recherches ici.
Avec ceci, le lien passe en noir :Mais, le problème, c'est que ça touche beaucoup trop de choses ! En effet, ceci touche presque tout... Même des choses que j'aimerais laisser en blanc. Il suffit de mettre le fond en rouge pour voir ce qui est touché...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 label { color : #f00; /*background-color: rgba(100%,00%,00%,1);*/ }
Trouvé... J'ai regardé le fichier de configuration des css de gtk, il n'y avait qu'un seul endroit où on soulignait des choses :
J'ai donc essayé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 button:link > label, button:visited > label { text-decoration-line: underline; }
Ça marche !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 button:link > label { color : #000; /*background-color: rgba(100%,00%,00%,1);*/ }
Modérateur Mageia/Mandriva Linux
Amicalement VOOotre
Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
Mes tutoriels : xrandr, algorigramme et C, xml et gtk...
Juste pour dire que c'est résolu... je l'ai mis en rééditant mon message précédent, ais, si tu suivais le fil et que tu avais déjà lu mon message, je me suis dit que tu aurais bien aimé savoir comment j'avais fait.
Modérateur Mageia/Mandriva Linux
Amicalement VOOotre
Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
Mes tutoriels : xrandr, algorigramme et C, xml et gtk...
Merci de cette attention, je n'aurais effectivement pas été notifié sinon
Sinon ce code fonctionne effectivement pour moi aussi… si je le mets dans ~/.config/gtk-3.0/gtk.css.
Mais ça ne fonctionne pas si je le mets dans gtk_css_provider_load_from_data() comme plus haut.
Ça n'est d'ailleurs pas la première fois que je remarque ce genre de différence.
Je charge mon css au début de mon programme :Et c'est dans mon css que j'ai mis ma modif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 css_provider= gtk_css_provider_new(); chemin=g_build_path (G_DIR_SEPARATOR_S,ici,"fichiers","mongtk.css",NULL); display = gdk_display_get_default(); screen = gdk_display_get_default_screen(display); gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gtk_css_provider_load_from_path (css_provider,chemin,&error); if (error!=NULL) { g_warning("%s", error->message); g_error_free(error); exit(EXIT_FAILURE); } else { /* ouverture OK du css */ } g_free(chemin);
Modérateur Mageia/Mandriva Linux
Amicalement VOOotre
Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
Mes tutoriels : xrandr, algorigramme et C, xml et gtk...
Avec gtk_style_context_add_provider_for_screen() ça fonctionne, bon à savoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 GtkCssProvider *provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, "button:link > label { color: red; }", -1, NULL); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (provider);
Partager