Partage
  • Partager sur Facebook
  • Partager sur Twitter

[OCaml] Changer la taille du texte avec Graphics

Avec la bibliothèque graphique standard

Sujet résolu
    6 octobre 2013 à 10:14:23

    Bonjour à tous,

    Je rencontre un problème avec la bibliothèque Graphics d'OCaml, je ne sais pas comment changer la taille du texte.

    Malheureusement, set_text_size ne change rien du tout, quelque soit la valeur passée en paramètre…

    Une idée ? Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2013 à 20:50:58

      Bonsoir,

      Personne n'a d'idée de comment faire ?
      La fonction attend bien un entier ?

      Merci. 

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        7 octobre 2013 à 22:29:46

        Salut,

        J'ai regardé la doc, et elle indique que l'interprétation de l'argument dépend de l'implémentation... Du coup, je suis allé télécharger les sources.

        Et dans les sources, la fonction ne fait rien... Donc il ne faut pas s'étonner que ça ne fonctionne pas. Les recherches sur le Web confirment ça, il y a des gens qui ont des problèmes avec, et pas de réponse au problème.

        J'ai donc l'impression que tu ne puisse pas faire grand chose.

        • Partager sur Facebook
        • Partager sur Twitter
          8 octobre 2013 à 19:16:42

          D'accord… Merci beaucoup !

          Et tant pis.

          • Partager sur Facebook
          • Partager sur Twitter
            12 octobre 2013 à 0:21:26

            Sous Linux tu peux utiliser Graphics.set_font dans la mesure où c'est juste un binding vers XLoadQueryFont. Personnellement j'y connais trop rien mais chez moi je peux lui passer par exemple -misc-fixed-medium-r-semicondensed--20-200-75-75-c-0-iso8859-1 pour avoir la police utilisée par défaut par OCaml (fixed) en 20pt. J'ai pu lister les fonts disponibles chez moi avec ça :

            #include <X11/Xlib.h>
            #include <X11/Xutil.h>
            #include <X11/Xos.h>
            #include <stdio.h>
            
            int main(void){
            
              int nfonts;
            
              Display *dpy = XOpenDisplay(0);
              if(!dpy) return -1;
            
              char **cfonts = XListFonts(dpy, "*--0-0-*iso8859-*", -1, &nfonts);
             
              int i;
              for(i=0;i<nfonts;i++){
                  printf("%s\n", cfonts[i]);
              }	
            
              if(cfonts) XFreeFontNames(cfonts);
              XCloseDisplay(dpy);
              return 0;
            
            }
            

            Compilé avec -lX11. Tu peux te renseigner sur les "X Logical Font Description Conventions" pour savoir ce que tu peux passer ou non à Graphics.set_font du coup.

            Bon courage surtout si tu veux rendre ça portable...

            Doc de XLoadFont :

            http://tronche.com/gui/x/xlib/graphics/font-metrics/XLoadFont.html

            • Partager sur Facebook
            • Partager sur Twitter
              12 octobre 2013 à 11:07:42

              Je n'arrive pas à compiler le C que tu m'as donné (problèmes probablement avec XQuartz sur Mac OS…).

              Dans tous les cas, j'ai voulu changer la chaîne pour mettre autre chose que 20, que semicondensed, ou medium… Aucun d'entre eux ne change la taille.

              Merci !

              • Partager sur Facebook
              • Partager sur Twitter
                12 octobre 2013 à 11:43:01

                En fait il y a un outil fourni directement par X11 pour les lister sinon (présent dans la doc de Mac OS X donc j'imagine que tu peux l'utiliser) :

                https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/10.7/man1/xlsfonts.1.html

                En effet il faut changer le 20 mais pas que, si tu mets un paramètre qui concorde pas derrière il ne trouvera pas la police pour ce que j'en ai testé.

                Par exemple chez moi pour avoir la police en question dans une taille de mon choix le plus générique que j'ai trouvé pour le moment c'est ça :

                Graphics.set_font "-*-fixed-medium-r-semicondensed--25-*-*-*-*-*-iso8859-1"

                Mais c'est que du bricolage, encore une fois faudrait se renseigner sur les "X Logical Font Description Conventions" pour savoir ce qu'on fait.

                • Partager sur Facebook
                • Partager sur Twitter
                  13 octobre 2013 à 21:38:11

                  Ah super, merci !

                  Ça fonctionne bien.

                  Par contre, il faut que je trouve des polices qui seront aussi lues sur un autre ordinateur… C'est pour un projet et ce sera compilé par le prof.

                  Merci beaucoup en tout cas. :)

                  • Partager sur Facebook
                  • Partager sur Twitter

                  [OCaml] Changer la taille du texte avec Graphics

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown