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 :

Texte non formaté dans fonction callback


Sujet :

GTK+ avec C & C++

  1. #1
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut Texte non formaté dans fonction callback
    Bonjour, bonjour
    C'est encore moi
    Voilà, cette fois mon problème est que je n'arrive pas à formater le texte avec des balises pango, j'ai mon application, lorsque l'on clique sur l'élément A propos... du menu, une autre fenêtre s'affiche, contenant le texte de la FAQ de l'application, le problème est que ce tetxe ne veut pas être formaté, alors que j'utilise bien gtk_label_set_use_markup, mais il m'affiche le texte avec les balises, sans formatage
    Mon code esten pièce jointe, et voici l'endroit qui (d'après moi) pose problème :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    #include <stdlib.h>
    #include <gtk\gtk.h>
    #include "headers/gtk_perso.h"
    #include "headers/event.h"
     
    void OnAbout(GtkWidget* pMenu, gpointer data)
    {
        // Création des variables qui contiendront les widgets
        GtkWidget* pWindow;
        GtkWidget* pScrollbar;
        GtkWidget* pLabel;
        // Création de la fenêtre
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        // Définition de la taile de la fenêtre
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 640, 480);
        // Définition du titre de la fenêtre
        gtk_window_set_title(GTK_WINDOW(pWindow), "FAQ Gencodeur");
        // Création des barres de déroulement
        pScrollbar = gtk_scrolled_window_new(NULL, NULL);
        // On définit la police
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pScrollbar), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC );
        // Création du label
        pLabel = gtk_label_new(conversion_utf8("<u>FAQ : Frequent Asked Question</u>\n\n<u>Quels sont les outils nécessaire comment se les procurés ?</u>\nLes outils nécessaire à une utilisation correcte de Gencodeur :\n- lsdvd\n- vobcopy\n- Mplayer\n- mencoder\n- avisplit(contenu dans la suite transcode)\nVous pouvez acquérir ces outils de manière classiques, ou alors en utilisant la fonction Se procurer les outils du Gencodeur,\ncet fonction télécharge, installe et prend tout en compte pour une utilisation réussie et optimale\n\n<u>Je suis perdu !</u> \nVous êtes perdu ? \nC'est normale, le domaine n'est pas simple, je vais tenter de vous expliquer le déroulement des opérations :\nEtape 1 -> Copier le contenu du DVD sur votre disque dur(grâce au bouton Copier vers le disque dur)\nEtape 2 -> Déterminez les langues que vous souhaitez utilisé, pour :\n\t- L'audio, récupérez l'AID(Audio IDentifier) que vous transmettrez au moment voulu\n\t- Les sous-titres, récupérez le SID(Subtitle IDentifier) correspondant à votre choix, lui aussi vous sera demandé\nGardez ces numéros de côtés, ils vous seront demandés lors de l'encodage proprement dit\nEtape 3 -> Découper les bordures noirs autour de l'image, je vous conseille d'utiliser la détéction & decoupe automatiques des \nbordures pour cet étape, sinon, repérez le résultat cropxxx et tapez le pour la découpe manuelle\nEtape 5 -> Encoder l'audio, vous pouvez encoder l'audio manuellement si vous le souhaitez, pour cela, vous devez indiquer le numéro \naid et sid, et d'autres paramètre qui vous seront demandés, comme le format d'encodage audio(par défaut MP3)\nEtape 6 -> Encore une fois vous pouvez encoder l'audio manuellement, en fournissant (entre autres) le taux d'encodage, ainsi \nqu'éventuellement les détails manuels de l'encodage du codec\n Etape 7 -> Enfaîte cet étape traite de l'encodage automatique, en l'utilisant, vous n'auriez rien d'autre à faire que de \ncocher des cases et éventuellement compter pour lancer l'encodage Audio/Video tout seul\nJ'éspére que vous n'êtes plus(ou au moins moins) perdu."));
        // Précise que le label utilise les balises pango
        gtk_label_set_use_markup(GTK_LABEL(pLabel), TRUE);
        // Insertion du label dans la fenêtre
        gtk_container_add(GTK_CONTAINER(pScrollbar), pLabel);
        // On ajoute la zone de texte dans la zone avec des barre défilantes
        gtk_container_add(GTK_CONTAINER(pWindow), pScrollbar);
        // Affichage de la fenêtre et de son conten
        gtk_widget_show_all(pWindow);
    }
    C'est ici que le formatage devrait se faire, mais ced n'est pas le cas, je ne comprends pas pourquoi
    d'avance !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    La doc a l'air de dire d'utiliser gtk_label_set_markup pour mettre ton texte formaté dans ton label.

  3. #3
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Oui, mais normalement, on peux aussi faire comme ça
    Et ça marche dans d'autre cas

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Essaie avec une chaîne "brute" déjà, genre "<u>FAQ : Frequent Asked Question</u>" sans appeler ta méthode conversion_utf8 et sans mettre rien de plus dans ta chaîne.

  5. #5
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Ouai, en effet, ça marche
    Mais je vois pas comment faire....
    Peut être que conversion_utf8 convertit aussi les balises

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Encode ton source en utf-8 et laisse tomber ta fonction de conversion en utf8... Y a des chances qu'elle soit buggée. Je doute qu'elle convertisse les balises en utf8. Par contre, vérifie qu'en sortie t'as bien une chaîne utf8 valide avec g_utf8_validate.

  7. #7
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Non, le problème ne vient pas de la conversion UTF8, quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pLabel = gtk_label_new(conversion_utf8("<u>FAQ</u>"));
    Ca marhce, je nage de plus en plus
    Mais je viens de penser à une chose, vu la taille de mon texte, peut être qu'il est trop long et que ça dépasse une capacité quelque part...

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Encore heureux que ça ça marche vu que la chaîne que tu passes en entrée est déjà en utf-8.
    g_assert (g_utf8_validate (conversion_utf8("ééèèüü"), -1, NULL)); me paraît beaucoup plus intéressant comme test

  9. #9
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Non, elle n'est pas en utf8, c'est juste qu'elle n'a aucun caractère qui ont besoin d'être convertie en UTF8
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pLabel = gtk_label_new(conversion_utf8("<u>éssayons avec plein dé é parté</u>"));
    marche très bien

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    T'as plus qu'à faire preuve d'un peu de créativité dans ton debuggage... Par ex en commençant avec le tout début de ta chaîne pour alquelle tu n'as pas de markup, et en la rallongeant petit à petit pour essayer de comprendre pourquoi tu n'as pas de markup sur la chaîne complète, alors que des "petits" tests tendent à montrer que ça devrait marcher.

  11. #11
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Pas la peine, j'ai compris d'où venait le problème :
    Il doit mal interprêter ça

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Ah oui, il doit clairement pas aimer, il doit falloir l'escaper d'une façon ou d'une autre.

  13. #13
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Ben, non, j'ai remplacé par ":", bon je mets le résolu
    de ton aide

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

Discussions similaires

  1. Modèle non chargé dans une callback de validation
    Par Warno dans le forum CodeIgniter
    Réponses: 2
    Dernier message: 20/04/2010, 00h10
  2. Type Text non reconnu dans Delphi
    Par dimi2 dans le forum Langage
    Réponses: 7
    Dernier message: 19/03/2008, 10h32
  3. fichier texte non formater vers mysql
    Par rezareza dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/01/2008, 03h08
  4. [MsgBoxPlus]texte non formaté ?
    Par Hydex dans le forum VBA Access
    Réponses: 4
    Dernier message: 20/07/2007, 15h14
  5. [JDOM] Element Text non souhaité dans la construction
    Par alex.nd dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 24/10/2006, 14h38

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