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 :

Problème affichage entre PC [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Janvier 2020
    Messages
    0
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2020
    Messages : 0
    Points : 213
    Points
    213
    Par défaut Problème affichage entre PC
    Bonsoir à toutes et à tous,

    Je suis face à un petit souci avec mes interfaces graphiques.
    Pour créer mes fenêtres je travaille avec QtDesigner et pour le code j'utilise Spyder.

    Le problème est le suivant : lorsque je compile mon code sur un autre ordinateur il arrive que l'affichage ne soit pas identique. (idem pour l'exécutable créé avec cx_freeze)
    Par exemple texte coupé dans un pushbutton ou ligne de texte en bas de fenêtre partiellement coupée.

    J'avoue que je sèche un peu sur la manière de rendre mon code compatible quel que soit l'ordinateur sur lequel le code est compilé (ou l'exécutable).

    Merci d'avance pour votre aide

    Bonne soirée

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai déjà rencontré ce problème sur un même programme exécuté sous Windows et sous Linux. Je pense qu'il s'agit d'un problème de police de caractère: quand la police demandée dans un programme n'est pas disponible sur un OS donné, il y a un mécanisme de remplacement par une police proche, mais celle-ci n'étant pas identique, cela change un peu la présentation à l'écran.

    Avec les anciennes versions de PyQt, il y avait une possibilité d'intégrer une police de caractère fournie par Qt dans le programme, Mais ça a été supprimé dans les dernières versions de PyQt5.

    Ce serait intéressant de voir quelles sont les polices disponibles, afin de voir s'il y en a une qui soit présente partout:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        fontdb = QtGui.QFontDatabase()
        fontliste = fontdb.families(QtGui.QFontDatabase.Latin)
        for font in fontliste:
            print(font)
    Ce qui donne chez moi une grande liste (354 polices!) sous Windows 10:

    Adobe Arabic
    Adobe Caslon Pro
    Adobe Caslon Pro Bold
    Adobe Devanagari
    ...
    ...
    Yu Gothic UI Light
    Yu Gothic UI Semibold
    Yu Gothic UI Semilight

    On peut aussi voir quel est la police par défaut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        font = QtGui.QGuiApplication.font()
        print(font.family())
    Ce qui, chez moi, affiche sous Windows 10:

    MS Shell Dlg 2
    On peut changer cette police comme ça, par exemple par "Arial":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        qfont = QtGui.QFont("Arial")
        QtGui.QGuiApplication.setFont(qfont)
    Et le même code que précédemment donnera comme police par défaut:

    Arial
    On devrait même pouvoir intégrer ("embedded") une police de caractère dans le programme avec QFontDatabase.addApplicationFont(fichierfont) et un fichier de police truetype comme "arial.ttf" (chercher son adresse dans Windows).

    Je ne suis pas un spécialiste de ces questions, mais ça vaut le coup de chercher dans cette direction pour résoudre ton problème.

    Et si tu y arrives, ça m'intéresse de savoir avec quelle solution!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Janvier 2020
    Messages
    0
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2020
    Messages : 0
    Points : 213
    Points
    213
    Par défaut
    Bonjour,

    Merci pour cette réponse.

    Ce qui m'étonne un peu c'est que je n'ai travaillé que sous Windows. Avec la police Calibri.
    Je vais me pencher sur le sujet quand même.

    La seule différence vient du type de pc fixe ou portable (programme fait sur un pc fixe, si je l'ouvre sur un autre fixe aucun souci. Les problèmes d'affichage arrivent sur les portables).

    Je continue mes recherches et je vous tiens au courant.

    Bonne journée

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 298
    Points : 6 778
    Points
    6 778
    Par défaut
    Salut,

    Tu mets bien tes widgets dans des layouts ? Sans fixer la position x, y et les largeur-hauteur ?

    Parce que si tu fixes la géométrie des widgets ce serait très probablement la cause du problème.

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Janvier 2020
    Messages
    0
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2020
    Messages : 0
    Points : 213
    Points
    213
    Par défaut
    Salut,

    Alors justement je viens de trouver ce topic : https://www.developpez.net/forums/d1...ution-d-ecran/ qui m'a donné l'idée.

    Citation Envoyé par VinsS Voir le message

    Tu mets bien tes widgets dans des layouts ? Sans fixer la position x, y et les largeur-hauteur ?
    J'utilise bien des layouts, mais j'avais malencontreusement attribué une taille maximale à certains widgets.
    Lors de mes tâtonnements sur QtDesigner je voulais en effet régler la taille de certains objets. J'avais donc modifié la taille max ce qui ne répondait pas à mon besoin puis la taille mini (ce dont j'avais besoin).

    Et ce sont bien les widgets ayant une taille maximale a été renseignée qui ont un problème d'affichage !

    Donc tu confirmes un peu cette piste. Je vais faire le test de ce pas.

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Janvier 2020
    Messages
    0
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2020
    Messages : 0
    Points : 213
    Points
    213
    Par défaut
    Re bonjour,

    Après avoir supprimé la taille maximale des objets je n'ai plus de soucis d'affichage.

    Merci pour vos remarques !

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

Discussions similaires

  1. [HTML 4.0] Problème affichage de lien entre IE7 et FireFox
    Par loic20h28 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/06/2009, 16h24
  2. Problème d'affichage entre image et texte
    Par neoxtra dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 26/01/2009, 14h32
  3. Problème d'affichage entre IE et Firefox
    Par bard123 dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/10/2008, 18h08
  4. Problème d'affichage entre swf local et serveur
    Par djhanihill dans le forum Flash
    Réponses: 1
    Dernier message: 24/01/2008, 20h15
  5. [Configuration] Problème d'affichage entre le php et html
    Par arioule dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 19/09/2007, 11h30

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