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 :

Tooltips et mise en page


Sujet :

GTK+ avec C & C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut Tooltips et mise en page
    Bonsoir à tous,

    Après avoir parcouru la doc j'ai réussi à trouver la fonction que je voulais j'ai nommé la fonction gtk_tooltips_new. Pour l'utiliser pas de problème, mais je me suis demandé s'il était possible de lui fournir une mise en page complexe.

    Par exemple quelque chose comme ça:
    Nom: blabla
    Age: blabla

    J'ai vu que la nouvelle version de GTK permettait des mises en pages complexes avec images ... (J'espère que je ne dis pas de bêtises). Alors peut-être que l'on peut avec les versions ultérieures.

    Si cela n'est pas possible tampis ce n'est pas non plus le plus important.

    Sur ce, bonne soirée et merci d'avance.

  2. #2
    Membre Expert
    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
    Par défaut
    Ouais, il est possible qu'il faille attendre une nouvelle version de gtk+ pour faire des tooltips "complexes". Enfin gaim avait déjà des tooltips avec image et tout ça, mais je ne serais pas surpris que ça soit très compliqué à faire. En tout cas, avec la prochaine version de gtk+, ça devrait être assez simple

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Pour GTK+ 2.12 il y a en en effet une simplification de l'API des tool tips : GtkTooltip (qui remplace GtkTolltips)

    GEdit propose aussi des tootips évolués, mais recode entièrement l'objet en affichant le texte avec la fonction gtk_label_set_markup (cf gedit-toolltips.c et gedit-toolltips.h, que tu dois pouvoir reprendre directement pour ton projet, en accord avec la licence).

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Merci pour vos réponses, mais au risque de passer pour un boulet te serait-il possible de développer ton histoire avec GEdit.

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par AureK Voir le message
    Merci pour vos réponses, mais au risque de passer pour un boulet te serait-il possible de développer ton histoire avec GEdit.
    Bien sûr que je peux, mais qu'est ce que tu veux savoir ?

    Il te suffit de récupérer les deux fichiers gedit-tooltips.c et gedit-tooltips.h, tu les ajoute à ton projet et après tu as juste à faire un gedit_tooltips_new puis un gedit_tooltips_set_tip (je n'ai jamais touché au Tool tips donc ce ne sont que des suppositions). Et là comme paramètre tip_text tu peux utiliser une chaîne de caractères avec des balises de mise en forme, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<b>Nom</b> : blabla\n<b>Age</b> : blabla"
    Pour obtenir ce que tu veux

    Tu peux trouver d'autres mise en forme ici.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Alors déjà merci, tout ce que tu m'as dit marche dans la limite ou, il y a bien un tooltip qui est crée et qui s'affiche mais le problème et que avec ou sans mise en page la console me revoie une erreur.

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed

    (Lecteur mp3 .exe:2516): Pango-CRITICAL **: _pango_engine_shape_covers: assertio
    n `PANGO_IS_FONT (font)' failed
    Je ne sais pas trop ce que ça veut dire. Mon idée est que la police n'a pu être chargé. (Mais je suis vraiment pas sûr)

    Mais outre ces erreurs, la mise en page est effective, j'obtiens bien quelque chose comme:

    Nom: Dupont
    Prénom: Jean

    Pour précision, j'avais bien trouvé les fichiers sources cités, mais pas les fonctions qu'il fallait alors merci encore de cette aide.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Re bonjour à tous,
    Alors je viens de me rendre compte que sans mon code vous n'allez guère pouvoir m'aider. Alors, le voici:
    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
    34
    35
    36
    37
    38
    FSOUND_Stream_GetTagField(Widget->MusiqueEnLecture, count, &type, &name, &value, &length);
     
                switch(count)
                {
                    case 0:
                    sprintf(InfoMedia,"<b>%s</b>\n", (char*)value);
     
                    NomMusique = FSOUND_Stream_GetSample(Widget->MusiqueEnLecture);
     
                    strcpy(chaine,(char*)NomMusique);
                    sUtf8 = g_locale_to_utf8(chaine, -1, NULL, NULL, NULL);
                    gtk_label_set_text(GTK_LABEL((GtkWidget*)Widget->LTitreMusique), sUtf8);
                    g_free(sUtf8);
                    strcat(chaine, " - En Lecture");
                    sUtf8 = g_locale_to_utf8(chaine, -1, NULL, NULL, NULL);
                    gtk_window_set_title(GTK_WINDOW(Widget->Window), sUtf8);//Titre de la fenêtre
                    g_free(sUtf8);
     
                    break;
     
                    case 1:
                    sprintf(InfoMedia,"par %s\n", (char*)value);
                    break;
     
                    case 2:
                    sprintf(InfoMedia,"dans %s\n", (char*)value);
                    break;
     
                    case 3:
                    if(strpbrk(value, "0123456789") != NULL && strlen(value) == 4)
                    {
                        sprintf(InfoMedia, "en %s\n", (char*)value);
                    }
                    else
                    {}
                    break;
     
                }
    J'espère qu'avec tous cela vous pourrez m'aiguiller au mieux.

    Merci d'avance.

  8. #8
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Je viens de tester avec un exemple simple, ça fonctionne très bien :
    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
    #include <gtk/gtk.h>
    #include "gedit-tooltips.h"
     
    int main (int argc, char **argv)
    {
      gchar *utf8 = NULL;
      GtkWidget *p_window = NULL;
      GtkWidget *p_button = NULL;
      GeditTooltips *p_tooltips = NULL;
     
      gtk_init (&argc, &argv);
     
      p_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      g_signal_connect (G_OBJECT (p_window), "delete-event", gtk_main_quit, NULL);
     
      p_button = gtk_button_new_with_label ("GEdit Tooltips !");
      gtk_container_add (GTK_CONTAINER (p_window), p_button);
     
      p_tooltips = gedit_tooltips_new ();
      utf8 = g_locale_to_utf8 ("<b>Nom</b> : Gégé\n<b>Age</b> : blabla",
                               -1, NULL, NULL, NULL);
      gedit_tooltips_set_tip (p_tooltips, p_button, utf8, NULL);
      g_free (utf8), utf8 = NULL;
     
      gtk_widget_show_all (p_window);
      gtk_main ();
      return 0;
    }
    Le problème viens d'ailleurs

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Cela viens bien de chez moi car, même avec ton exemple simple j'ai les mêmes erreurs. Plus 2 nouvelles:

    Code x : 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
    (Win32GUI.exe:2208): Pango-WARNING **: couldn't load font "Segoe UI 8", falling
    back to "Sans 8", expect ugly output.
    
    (Win32GUI.exe:2208): Pango-WARNING **: couldn't load font "Segoe UI Bold 8", fal
    ling back to "Sans Bold 8", expect ugly output.
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed
    
    (Win32GUI.exe:2208): Pango-CRITICAL **: _pango_engine_shape_covers: assertion `P
    ANGO_IS_FONT (font)' failed

    Une réinstallation peut résoudre ce problème ?

    Merci de t'être penché sur mon cas.

  10. #10
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par AureK Voir le message
    Une réinstallation peut résoudre ce problème ?
    Oui il semble y avoir un problème dans l'installation de pango.
    Une piste : Pourquoi l'affichage des chaînes GTK+ n'est pas correct sous Windows ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Merci pour cette piste qui ne m'aide pas vraiment.

    Je n'arrive pas, à trouver un tuto ou une explication claire de comment changer mes fichiers de pango(si c'est bien eux et seulement eux que je dois changer).

    En fait, pour simplifier la tâche j'ai utiliser un pack mise à disposition dans un tuto.

    Si il vous serait possible de m'aider quant à la réinstallation de ces fichiers.

    Merci quant à une aide futur.

    Ps:Je précise que dans n'importe quel endroit que je me rends pour trouver quelque chose d'explicatif je ne trouve pas les fichiers car le plus souvent les liens sont morts mais aussi car je ne sais pas si j'ai les dernières versions des fihciers. Je sais qu'il reste le site officiels mais je ne comprends pas.

  12. #12
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par AureK Voir le message
    En fait, pour simplifier la tâche j'ai utiliser un pack mise à disposition dans un tuto trouvé à cette adresse
    GTK évolue trop vite pour pouvoir faire un miroir des paquets, le mieux est de toujours aller les prendre à la source : Comment installer GTK+ ?

    Il existe aussi un installeur pour Windows : http://gimp-win.sourceforge.net/stable.html

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Je te remercie pour tous les liens que tu m'as passé. D'ailleurs, l'article que tu as rédiger pour installer les fichier avec C::B est vraiment très bien expliqué malgré tout cela je n'arrive pas à faire quoi que se soit pour résoudre cette erreur avec mes tooltips. Alors, comme dernière recours, je viens à faire par de mon projet entier. Si bien sûr l'un de vous voudrez bien tester et me dire si les erreurs sont toujours présente.

    Ps: Les deux erreurs du début sont dû au thème utilisé.
    Pour afficher les tooltips, il suffit de passer sur le label où on peut lire "Titre de la musique".

    http://dl.free.fr/bPOsrZIex/Mp3.zip

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Je up ce sujet pour dire que mon souci venait en fait de mon fichier font dans windows. En effet, après avoir installé une font quelconque, le problème a disparu comme il est venu. Alors, c'est tjrs bon à savoir.

    Merci pour ton aide néanmoins gege.

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

Discussions similaires

  1. [VB6+API][Impression] Mise en page
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/09/2004, 17h11
  2. [CR.NET][VS.NET] mise en page et sections
    Par guignol dans le forum SDK
    Réponses: 8
    Dernier message: 06/08/2004, 15h07
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. [CR] Mise en page
    Par akolyto dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/10/2003, 12h22
  5. [mise en page] pour bien indenter son code
    Par bihorece dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/08/2003, 16h14

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