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 :

comment mettre du texte formaté dans une frame?


Sujet :

GTK+ avec C & C++

  1. #1
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut comment mettre du texte formaté dans une frame?
    j'ai essayé de récuperer le contenu d'un label dont le texte a été préablement formaté,et ensuite de le mettre comme titre de mon frame,
    malheureusement ceci ne marche pas,il ne tient pas compte des valises pango.
    voici à peu prés le code que je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    int main()
    {
    GtkWidget *ptexte;
    GkWidget *pcadre;
    gchar *texte;
    ...........
    ptexte=gtk_label_new(NULL);
    gtk_label_set_markup(GTK_LABEL(ptexte),"<big>texte formate</big>");
    texte=gtk_label_get_label(GTK_LABEL(ptexte));
    pcadre=gtk_frame_new(texte);
    .....
    ceci m'affiche:<big>texte formate</big>.
    il n'interprete donc pas les balises!!

    merci pour votre aide


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  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 : 46
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Bon en fait, il faut créer un GtkFrame vide, dans lequel tu met ton label:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pcadre=gtk_frame_new(NULL);
    gtk_frame_set_label_widget (GTK_FRAME (pcadre), ptexte);
    gtk_label_set_use_markup (GTK_LABEL (ptexte), TRUE);
    Tout simplement

    Pour infos, dans ton code je ne vois pas l'utilité de cette partie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte=gtk_label_get_label(GTK_LABEL(ptexte));
    Tu aurais plutot du mettre ton texte directement à l'emplacement du pointeur puis de transmettre ce pointeur aux Widget adéquats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main()
    {
    GtkWidget *ptexte;
    GkWidget *pcadre;
    gchar *texte = "<big>texte formate</big>";
    ...........
    ptexte=gtk_label_new(NULL);
    gtk_label_set_markup(GTK_LABEL(ptexte),texte);
    pcadre=gtk_frame_new(texte);
    Et du coup .... Ô miracle, plus de Warnings
    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
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Citation Envoyé par CSoldier
    Bon en fait, il faut créer un GtkFrame vide, dans lequel tu met ton label:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pcadre=gtk_frame_new(NULL);
    gtk_frame_set_label_widget (GTK_FRAME (pcadre), ptexte);
    gtk_label_set_use_markup (GTK_LABEL (ptexte), TRUE);
    Tout simplement
    ceci marche,merci
    par contre,je ne comprends pas pourquoi on ne peut pas creer un frame directement avec du texte formaté!!
    EDIT:j'ai compris
    en fait dans gtk_frame_new,le paramètre est du type gchar* donc on ne peut mettre du texte formaté,alors que gtk_frame_label_widget admet comme parametre un......label
    oui je sais ma question etait idiote
    Pour infos, dans ton code je ne vois pas l'utilité de cette partie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte=gtk_label_get_label(GTK_LABEL(ptexte));
    en fait,je pensai que pour tenir compte des balises,il fallait que le texte soit dans un label.l'idée était donc de formater le texte dans le label puis de transferer dans texte.
    c'est peu étre stupide comme idée mais c'est ce qu'il m'est venu à l'esprit

    Tu aurais plutot du mettre ton texte directement à l'emplacement du pointeur puis de transmettre ce pointeur aux Widget adéquats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main()
    {
    GtkWidget *ptexte;
    GkWidget *pcadre;
    gchar *texte = "<big>texte formate</big>";
    ...........
    ptexte=gtk_label_new(NULL);
    gtk_label_set_markup(GTK_LABEL(ptexte),texte);
    pcadre=gtk_frame_new(texte);
    Et du coup .... Ô miracle, plus de Warnings
    oui mais là texte n'est pas formaté,c'est ptexte qui l'est,or pour creer le frame tu utilise texte.
    peut-étre que j'ai mal compris...
    en tout cas merci infinement pour ton aide


    Mes publications
    Lisez
    Les régles du forum
    Pensez au 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 : 46
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par afrikha
    par contre,je ne comprends pas pourquoi on ne peut pas creer un frame directement avec du texte formaté!!
    Il n'existe pas de fonction pour les GtkFrame (pas à ma connaissance en tous cas) comme celle pour les labels (gtk_label_set_use_markup). Puis losque tu créé un GtkFrame en lui donnant un texte, tu n'accede pas directement au GtkLabel contenu dans le GtkFrame donc impossible de le formatter directement.

    Citation Envoyé par afrikha
    en fait,je pensai que pour tenir compte des balises,il fallait que le texte soit dans un label.l'idée était donc de formater le texte dans le label puis de transferer dans texte.
    c'est peu étre stupide comme idée mais c'est ce qu'il m'est venu à l'esprit
    Bah en fait c'est pas bon car c'est au niveau du label que le texte est formatté et si dans ton cas tu transfert le texte du label vers un pointeur comme ce que tu as fait, ton texte ne sera point formatté à l'intérieur de celui-ci, ceci est en rapport direct avec les Widgets !

    Citation Envoyé par afrikha
    oui mais là texte n'est pas formaté,c'est ptexte qui l'est,or pour creer le frame tu utilise texte.
    peut-étre que j'ai mal compris...
    Certes j'utilise texte mais en placant son contenu dans un GtkLabel en utilisant la fonction gtk_label_set_markup, c'est elle qui permet le formattage du texte directement dans leGtkLabel

    Citation Envoyé par afrikha
    en tout cas merci infinement pour ton aide
    C'etait un plaisir
    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 !

  5. #5
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Certes j'utilise texte mais en placant son contenu dans un GtkLabel en utilisant la fonction gtk_label_set_markup, c'est elle qui permet le formattage du texte directement dans leGtkLabel
    on est d'accord sur ce point.le truc c'est que pour creer ton frame,tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pcadre=gtk_frame_new(texte)
    je pense que tu voulais dire qu'il fallait d'abord creer un frame vide puis utiliser gtk_frame_set_label_widget,non?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    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 : 46
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Oui comme je l'ai montré dans mon premier code en haut du post, ton code, je ne l'est pas modifié, faut pas en tenir compte en fait c'etait juste pour te montrer qu'il etait plus judicieux de mettre le texte avec ses balises directement dans texte c'est tout
    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 !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2009, 11h51
  2. [HTML] Comment mettre un texte en dessous d'une image?
    Par Jessika dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 23/08/2007, 07h52
  3. Réponses: 4
    Dernier message: 25/08/2006, 16h58
  4. [ImageMagick] Comment mettre plus qu'un graphique dans une page ?
    Par 12_darte_12 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 29/06/2006, 20h30
  5. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40

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