Résolue

Pyexplorer / PySide

# Fichiers # PySide # CSS

J'ai suivi une bonne partie de la formation sur le Framework PySide. Très instructive et bien faite. Je me suis attardé sur le projet PyExplorer. Si on ne devait pas faire avec fbs, comme faire pour accéder tout de même à la feuille de style style.css et aux icons. J'ai bien compris qu'il fallait respecter une certaine hierachie des ficihiers et l'orthographe dans les noms de fichiers mais je pense que la methode get_resource(...) est dépendante de fbs, non ? merci pour ton aide

Thibault houdon

Mentor

Salut Alain,

Effectivement, get_resource est dépendant de fbs, mais ce n'est pas très difficile de le refaire à la main.

Tu peux utiliser le module os et la variable __file__ qui représente le chemin complet vers le script exécuté :

import sys
import os
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtGui import QIcon

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        css_path = os.path.join(os.path.dirname(__file__), 'resources', 'styles', 'style.css')
        with open(css_path, 'r') as f:
            style = f.read()
            self.setStyleSheet(style)

        icon_path = os.path.join(os.path.dirname(__file__), 'resources', 'icons', 'icon.png')
        self.setWindowIcon(QIcon(icon_path))

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())

Tu pourrais pour un code un peu plus moderne faire la même chose avec le module pathlib.

Et après il suffit donc de mettre tes fichiers de ressources à l'intérieur de ton application (dans un sous-dossier resources par exemple) pour pouvoir "packager" tout ça. Si tu utilises pyinstaller tu as des options pour indiquer des chemins supplémentaires à bien prendre en compte et mettre avec ton exécutable. Il faudra donc veiller à indiquer le dossier contenant les resources car il ne sera pas pris avec par défaut.

Merci Thibault

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.