IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

[GTK3]gtk_link_button_new_with_label : style de l'écriture


Sujet :

GTK+ avec C & C++

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut [GTK3]gtk_link_button_new_with_label : style de l'écriture
    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...

  2. #2
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    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);

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    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...

  4. #4
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    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…)

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    J'ai rajouté celà pour les tests :
    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);
    }
    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.
    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...

  6. #6
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Bonsoir

    J'arrête (pour le moment) mes recherches ici.


    Avec ceci, le lien passe en noir :
    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);*/
    }
    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é...


    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      button:link > label,
      button:visited > label {
        text-decoration-line: underline; }
    J'ai donc essayé :
    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);*/
    }
    Ça marche !
    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...

  7. #7
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    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...

  8. #8
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    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.

  9. #9
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Je charge mon css au début de mon programme :
    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);
    Et c'est dans mon css que j'ai mis ma modif.
    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...

  10. #10
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    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);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [GTK3+] Gestion des styles
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 14
    Dernier message: 09/01/2016, 09h29
  2. [gtk3]imposer et style et une langue ?
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 03/09/2012, 20h56
  3. Etude des "styles" de programmation
    Par RiRi51 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/03/2003, 19h50
  4. feuille de style generale
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/03/2003, 10h06
  5. Rattacher une feuille de style a un XML existant
    Par aour dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 08/10/2002, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo