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 :

PyQt6 Image Background


Sujet :

PyQt Python

  1. #1
    Membre averti
    Homme Profil pro
    DAF
    Inscrit en
    Août 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : DAF
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2020
    Messages : 12
    Par défaut PyQt6 Image Background
    Bonjour à vous,

    dans le programme que je développe j'ai inséré une image de background pour mes fenêtres via un fichier qss.

    Ca donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    style = str(Path(__file__).parent.parent) + "/frame/style.qss"
    with open(style, "r") as f:
        STYLESHEET = f.read()
     
    class MainFenetre(QMainWindow):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('Connexion')
            self.resize(600, 400)
            icone = ICO_PATH + "prog.ico"
            self.setWindowIcon(QIcon(icone))
            self.setStyleSheet(STYLESHEET)
            self.setObjectName("software-background")
    Et dans mon fichier qss j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #software-background {
        border-image: url(frame/graph/pics/background.png) 0 0 0 0 stretch stretch;
        }
    Je développe mon programme dans PyCharm et quand je le lance à partir du code source tout fonctionne, j'ai bien mon image en background.

    Par contre une fois que je compile le code avec cx_freeze mon image en background ne s'affiche plus et j'ai juste la couleur grise par défaut.
    J'ai vérifié, le fichier d'image est bien présent dans le dossier où il est sensé être.

    Je ne comprends pas pourquoi d'un côté ça fonctionne et pas de l'autre.

    Si quelqu'un à une idée je suis preneur.

    En vous remerciant par avance.

  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,

    Citation Envoyé par jim7963 Voir le message
    Par contre une fois que je compile le code avec cx_freeze mon image en background ne s'affiche plus et j'ai juste la couleur grise par défaut.
    J'ai vérifié, le fichier d'image est bien présent dans le dossier où il est sensé être.

    Je ne comprends pas pourquoi d'un côté ça fonctionne et pas de l'autre.
    Après traitement par cx-freeze (c'est vrai aussi pour pyinstaller), les adresses des fichiers de données (non ".py") ont changé. Il y a une méthode décrite dans la doc pour les trouver:

    https://cx-freeze.readthedocs.io/en/...ing-data-files

  3. #3
    Membre averti
    Homme Profil pro
    DAF
    Inscrit en
    Août 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : DAF
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2020
    Messages : 12
    Par défaut
    Bonjour et merci du coup de main @tyrtamos

    Après avoir cherché et dérivé en vain pendant quelques heures à partir du lien que tu m'as donné, j'ai enfin tilté d'où venait le problème.

    Quand le code est compilé avec cx_freeze tous les packages sont regroupés dans un seul dossier "lib" ce qui n'est pas le cas quand je travaille sur le code source.
    Il m'a suffit de modifier le chemin vers le fichier en rajoutant le /lib au début.

    J'ai donc modifié le fichier QSS pour avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #software-background {
        border-image: url(lib/frame/graph/pics/background.png) 0 0 0 0 stretch stretch;
        }
    Tout bête mais encore fallait-il y penser...

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

Discussions similaires

  1. Aligner une image background à droite
    Par Xeron dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 02/06/2008, 01h31
  2. [C#][Débutant en C#]Gestion d'une image background
    Par Lucier dans le forum Windows Forms
    Réponses: 2
    Dernier message: 28/11/2006, 11h04
  3. Changer l'image background du tag <td>
    Par H-bil dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/09/2006, 16h01
  4. images background dans un TD
    Par zulot dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 09/11/2005, 12h03
  5. afficher les images background
    Par DELYMED2 dans le forum ASP
    Réponses: 2
    Dernier message: 17/10/2005, 09h09

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