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 :

Foreground d'un bouton


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut Foreground d'un bouton
    Bonjour,

    J'aurais voulu savoir comme modifié le Foreground d'un bouton.

    J'ai essayer avec ça, mais ça ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PangoFontDescription *pfd = NULL;
     
    pfd = pango_font_description_new();
     
    pango_font_description_set_style(pfd, PANGO_STYLE_OBLIQUE);
     
    gtk_widget_modify_font(GTK_WIDGET(myButton), pfd);
    Comment fait-on pour attaquer le widget label d'un bouton?

    Merci

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Si c'est modifier la police du bouton que tu veux, tu peux éventuellement créer d'abord un bouton vierge avec la fonction gtk_button_new puis ensuite, tu créés un GtkLabel à part. Le texte que tu mettras dans le GtkLabel, c'est lui que tu vas formatter spécialement avec la fonction gtk_label_set_markup. Tu as un exemple assez complet sur la page suivante http://gtk.developpez.com/cours/gtk2/Gtk.Les.labels.php

    Une fois le texte mis dans le GtkLabel , tu intègre ce dernier widget à ton bouton avec la fonction gtk_container_add


    Voilà
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    Merci de répondre à nouveau à ma question.
    J'ai déjà vu la méthode que tu me proposes, et je l'utilise déjà dans mon programme.

    J'ai simplifié mon exemple, mais je souhaiterais modifier des boutons d'un gtk_dialog_new_with_buttons(...);

    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
    gpointer ptr;
    PangoFontDescription *pfd = NULL;
     
    // Recuperation des controles de la boite de dialogue
    GList * p_list = gtk_container_get_children (GTK_CONTAINER (GTK_DIALOG(clsParent->pWindow)->action_area));
     
    pfd = pango_font_description_new();
     
    pango_font_description_set_style(pfd, PANGO_STYLE_OBLIQUE);
     
    // Recuperation du bouton
    ptr = g_list_nth_data(p_list, 0);
     
    // C'est la que ça coince... ou plutôt qui ne se passe rien
    gtk_widget_modify_font(GTK_WIDGET(ptr), pfd);
    Là il ne se passe rien...
    Avec une autre méthode qui consiste à récupérer les éléments du conteneur bouton...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    gpointer ptr2;
     
    // ptr = c'est le bouton du dialogbox...
    GList * p_list2 = gtk_container_get_children (GTK_CONTAINER (ptr));
     
    ptr2 = g_list_nth_data(p_list2, 0);
     
    gtk_widget_modify_font(GTK_WIDGET(ptr2), pfd);
    Mais toujours pas moyen de récupérer le label d'un bouton!

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Mouais ... en générale on ne travail pas directement avec des pointeurs de type générique soit gpointer (void *) mais on cast plutot ce pointeur sur au moins le type GtkWidget car le type gpointer n'est pas déréférençable !

    Juste un exemple non testé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    GtkWidget * p_btn = ptr;
    GList * p_list2 = gtk_container_get_children (GTK_CONTAINER (p_btn));
     
    GtkWidget * ptr2 = (GtkWidget *) g_list_nth_data(p_list2, 0);
     
    gtk_widget_modify_font(GTK_WIDGET(ptr2), pfd);
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  2. redémarrer un prog à partir d'un bouton
    Par yokito dans le forum Langage
    Réponses: 5
    Dernier message: 06/09/2002, 13h19
  3. Réponses: 2
    Dernier message: 31/08/2002, 14h00
  4. Bmp pour boutons
    Par Fizgig dans le forum Outils
    Réponses: 5
    Dernier message: 22/08/2002, 10h56
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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