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

Plateformes Discussion :

Qt X11, utiliser une police perso [Linux]


Sujet :

Plateformes

  1. #1
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut Qt X11, utiliser une police perso
    Bonjour,

    Je souhaiterai utiliser une police perso truetype (ttf) dans une application Qt X11.
    D'après la doc, Qt recherche les polices installées sur X11, donc pour ajouter une police, il faut l'installer sur X11 (moyennant fontconfig). C'est chose faite : ma police ttf est copiée dans le répertoire /usr/share/fonts/truetype/mafont/mafont.ttf, le cache est mis à jour via fc-cache (j'ai même rebooté X11 pour être sûr). L'installation semble fonctionner puisque Gimp trouve cette police.
    Seulement, dans mon application Qt X11, elle est inaccessible. J'ai tenté ceci pour lister les fonts détectées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QFontDatabase database;
    foreach(QString fontname, database.families())
        qDebug() << fontname;
    J'obtiens une liste, et ma nouvelle police n'y est pas...


    Je tiens néanmoins à signaler que cette police a déjà été utilisée dans une application Qt for Embedded Linux, ce n'est donc pas un soucis de police non compatible.
    Dans la version Qt for Embedded Linux, l'utilisation de polices perso se fait différemment : il faut les enregistrer dans l'application avec QFontDatabase::addApplicationFont(QString chemin);, elles sont ensuite accessibles normalement via QFont. Et bien sûr, dans Qt X11, cette fonction ne marche pas (elle renvoie toujours -1).


    Avez-vous une idée?
    Un clavier Azerty en vaut deux.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    J'ai des fontes TTF dans mon $HOME/.fonts et elles sont bien trouvées par Qt/X11.
    Je ne sais pas pourquoi ça ne marche pas pour toi. Quelques suggestions

    1) exécuter fc-cache -fv

    2) exécuter ton programme avec strace, et dans le résultat voir s'il accède bien au répertoire où se trouve la fonte en question et s'il n'y a pas des erreurs suspectes par ailleurs.

  3. #3
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    fc-cache -fv m'affiche une ligne intéressante :

    /usr/share/fonts/truetype/gentoo : caching, new cache contents: 0 fonts, 0 dirs
    Ce qui me confirme que l'ajout marche (j'avais déjà vérifié ceci en lançant Gimp, ma police existe pour le server X).

    Le soucis est vraiment situé à l'accès depuis Qt.

    Pour ce qui est d'utiliser strace, j'ai un peu du mal. En mettant le nom de ma police, du fichier ou juste "ttf" dans un grep, ma police n'apparait pas.

    Je cherche alors à afficher les traces avec un grep "fonts" pour avoir plus d'infos, et la, les lignes défilent par milliers.

    Voici ma commande pour strace :
    strace application 2>$1 | grep "key"
    Que faire si mon appli ne cherche pas dans le bon dossier?
    Un clavier Azerty en vaut deux.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    /usr/share/fonts/truetype/gentoo : caching, new cache contents: 0 fonts, 0 dirs
    Ce qui me confirme que l'ajout marche (j'avais déjà vérifié ceci en lançant Gimp, ma police existe pour le server X).
    Hum ça dit qu'il n'a trouvé aucune fonte dans ce répertoire. Je ne saisis pas ton raisonnement comme quoi ça confirmerait que "l'ajout marche". Moi je dirais plutôt le contraire.

    Et si tu exécutes fc-list, est-ce que la fonte en question sort bien dans la liste?

  5. #5
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Toutes mes excuses, faute de frappe :

    /usr/share/fonts/truetype/gentoo : caching, new cache contents: 3 fonts, 0 dirs

    (Je fais de la réécriture depuis ma machine virtuelle Linux)

    fc-list me liste bien la font :
    7 days fat:style=Regular
    7 days:style=Regular
    N\-Gage:style=Medium

    Ces trois polices sont accessible dans Gimp et OpenOffice, mais pas dans Qt
    Un clavier Azerty en vaut deux.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    C'est à se demander si ta version de Qt utilise bien fontconfig? Par défaut ça l'utilise mais il est possible de ne pas l'activer dans le configure.

    Dans le résultat du strace ça doit être assez facile à voir en faisant un grep fontconfig

  7. #7
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Je suis sur Qt 4.5.

    Le "grep fontconfig" n'affiche rien du tout. Tu soulèves un point intéressant pour ce qui est de la configuration. Je regarde cette piste demain. Merci beaucoup.
    Un clavier Azerty en vaut deux.

  8. #8
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Il me semble que mon install de Qt soit celle par défaut, fontconfig devrait y être.

    Je vais télécharger la dernière version et forcer fontconfig dans le configure. C'est parti pour 1h de compilation
    Un clavier Azerty en vaut deux.

  9. #9
    Membre actif Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Points : 273
    Points
    273
    Par défaut
    Tu as de la chance, tu dois avoir une machine plutôt récente.

    J'ai passé la journée pour compiler Qt en debug-and-release...

  10. #10
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Qt 4.5.2 installé (avec configure -fontconfig, j'ai vérifié qu'il soit bien dans la liste des choses à builder dans le configure).

    Problème résolu, cela venait donc de mon installation de Qt.

    Merci beaucoup =)
    Un clavier Azerty en vaut deux.

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

Discussions similaires

  1. Utiliser une police sur serveur
    Par spikto dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 18/01/2008, 14h47
  2. [Free Pascal] Créer et utiliser une police
    Par xavier faure dans le forum Free Pascal
    Réponses: 4
    Dernier message: 06/05/2007, 20h55
  3. [FOP][Java] comment utiliser une police
    Par elzedo dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 01/12/2006, 18h40
  4. [JAR][POLICE] Utiliser une police ttf dans un fichier jar
    Par Doc.Fusion dans le forum Général Java
    Réponses: 3
    Dernier message: 26/01/2005, 12h23

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