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

PyQt Python Discussion :

police tifinagh


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Par défaut police tifinagh
    Bonjour,
    voici mon problème, quand je veux saisir ou afficher des mots de l'alphabet "tifinagh" dans mon interface(soit dans un champ texte ou combobox ou autre) crée par PyQt et lu avec python, j'ai des rectangles qui s'affichent au lieu des lettres tifinagh, sa veut dire qu'ils sont reconnu ( reconnu coté traitement/ même sur google chrome j'ai des rectangles qui s'affichent) mais pas leur affichage qui est sous forme de rectangle.
    j'aimerai savoir comment imposer la police de tifinagh a un champs texte ou autre widget de l'interface pour l'affichage ?
    Merci pour votre lecture

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Quelques idées:

    - Voir si cette police est bien installée => Table des caractères

    - Envoyer le texte uniquement en unicode dans le widget PyQt4

    Je viens d'essayer de placer en copier-coller un texte pris sur le web dans un QLineEdit: ça marche! Voilà le texte: ⵜⵉⴼⵉⵏⴰⵖ (en principe ça veut dire "tifinagh": http://fr.wikipedia.org/wiki/Tifinagh). Repris dans le code source Python et envoyé dans le QLineEdit, ça marche aussi.

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Par défaut
    merci pour votre réponse, mais moi quand je fais un copier-coller, j'ai toujours les carreaux qui s'affichent au lieu de l'alphabet, ce que je veux plutôt c'est pouvoir changer la police, pour le moment j'utilise "UnicodeUTF8"

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Le copier-coller d'un texte comme "ⵜⵉⴼⵉⵏⴰⵖ" ne marche que si l'encodage est en unicode, au minimum en utf-8.

    A contrario, si on essaie dans un éditeur configuré, par exemple, en latin1, on obtient une liste de "?".

    Conclusion: utiliser un éditeur configuré en utf-8, et commencer la page de code Python par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # -*- coding: utf-8 -*-

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Par défaut
    bonjour,
    pour le " # -*- coding: utf-8 -*- " il y est déjà dans mes éditeurs en python, et pour le copier coller dans l’éditeur de python, je réussie a voir les caractères,c'est juste quand j’écris que j'ai des ???? qui s'affichent, mais le problème reste toujours quand j’exécute mon main,mon interface s'affiche, j'ai des mots sélectionner depuis une BD en tifinagh, mais ils s'affichent toujours en carreaux .

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Quand on a un problème comme ça, il faut faire un code minimum, et essayer des trucs jusqu'à ce que ça marche.

    Voilà le code minimim en PyQt4 que je propose:

    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
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from __future__ import division
    #Python 2.7
     
    import sys, os
    from PyQt4 import QtCore, QtGui
     
    class Fenetre(QtGui.QWidget):
        def __init__(self, parent=None):
            super(Fenetre, self).__init__(parent)
     
            # instruction pour créer une ligne d'édition
            self.ligne = QtGui.QLineEdit(self)
     
            font = QtGui.QFont()
            font.setFamily(u"DejaVu Sans")
            self.ligne.setFont(font)
     
            # instruction pour créer un bouton
            self.bouton = QtGui.QPushButton(u"Cliquez!!!", self)
            # lier le clic sur le bouton avec la méthode à exécuter
            self.bouton.clicked.connect(self.bouton_m)
     
            # positionner les 2 widgets dans la fenêtre selon une grille 2x3
            posit = QtGui.QGridLayout()
            posit.addWidget(self.ligne, 0, 0, 1, 3)
            posit.addWidget(self.bouton, 1, 1, 1, 1)
            self.setLayout(posit)
     
        def bouton_m(self):
            self.ligne.setText(u"ⵜⵉⴼⵉⵏⴰⵖ")
     
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        fen = Fenetre()
        fen.show()
        sys.exit(app.exec_())
    Remarques:

    - on peut copier-coller "ⵜⵉⴼⵉⵏⴰⵖ" directement dans la ligne

    - en cliquant sur le bouton, "ⵜⵉⴼⵉⵏⴰⵖ" s'insère dans la ligne

    - mais si on retire les 3 lignes concernant QFont (lignes 16, 17 et 18): ça affiche des carrés dans les 2 cas précédents.

    A noter que je n'ai pas installé la police de caractère "tifinagh" dans mon PC.

    Faites des tests avec ce code, et dites ce que ça donne!

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

Discussions similaires

  1. [warning][properties]problème de police introuvable
    Par cyrdec dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/04/2003, 17h41
  2. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35
  3. Réponses: 5
    Dernier message: 27/11/2002, 14h08
  4. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  5. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 17h29

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