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 :

Fenêtre Windows avec PyQt


Sujet :

PyQt Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Points : 4
    Points
    4
    Par défaut Fenêtre Windows avec PyQt
    Bonjour tout le monde !
    Ayant recherché une solution, je ne trouve toujours pas comment faire :s
    Je souhaiterais avec PyQt pouvoir ouvrir une fenêtre Windows de l'explorer. En effet, mon programme possède un bouton d'ouverture du dossier de destination de l'enregistrement d'un fichier. Ainsi je voudrais que quand je clique sur ce bouton une fenêtre Windows apparaisse redirigé vers le dossier spécifié
    Il y a surement un solution avec la classe QDir mais même après de nombreux essais, impossible :s

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

    Quand on veut ouvrir ou enregistrer un fichier, on ne lance pas le navigateur de fichiers de l'OS, on utilise une boîte de dialogue. Par exemple pour ouvrir un fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            fichier = QtGui.QFileDialog.getOpenFileName(self, 
                         "Ouvrir un fichier", 
                         "/cheminverslefichier", 
                         "JPEG (*.jpg *.jpeg);; TIFF (*.tif);; All files (*.*)")
    Pour les arguments, à part le "self", on place:
    - le titre: "Ouvrir un fichier"
    - le répertoire à afficher: "/cheminverslefichier"
    - le filtrage des fichiers: "JPEG (*.jpg *.jpeg);; TIFF (*.tif);; All files (*.*)")

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour, ce n'est pas exactement ce que je cherche :s Ce dont j'ai besoin c'est de pouvoir ouvrir une fenêtre de l'explorer, par exemple, Mes Documents. Pour éviter à l'utilisateur de parcourir son disque dur jusqu'au dossier en question. Cela revient à la fonction présente sur la majorité des navigateurs web, lorsque que l'on fait un téléchargement : clique droit -> ouvrir le dossier de destination du fichier
    Merci d'avance

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 195
    Points : 156
    Points
    156
    Par défaut
    De mémoire, en ligne de commande "explorer dossier" ouvre l'explorateur avec le dossier en question.
    A toi de lancer cette commande depuis python

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 379
    Points : 36 923
    Points
    36 923
    Par défaut
    Citation Envoyé par nOwXO Voir le message
    Ce dont j'ai besoin c'est de pouvoir ouvrir une fenêtre de l'explorer, par exemple, Mes Documents. Pour éviter à l'utilisateur de parcourir son disque dur jusqu'au dossier en question.
    Votre "Mes Documents" est le répertoire a passer a QFileDialog.getOpenFileName que Tyrtamos a nomme "/cheminverslefichier" dans son exemple.

    Si vous ouvrez l'explorateur Windows, comment allez vous communiquer avec lui pour récupérer le nom de fichiers sélectionnés?
    Possible mais bien plus complique.

    - W

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 195
    Points : 156
    Points
    156
    Par défaut
    pas très clair..
    J'avais compris qu'il fallait ouvrir une fenêtre de l'explorateur pour voir le document sauvé.

    pour sélectionner un emplacement où l'on sauve, la solution de tyrtamos convient parfaitement!

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 379
    Points : 36 923
    Points
    36 923
    Par défaut
    Citation Envoyé par Nico_tournai Voir le message
    pas très clair..
    J'avais compris qu'il fallait ouvrir une fenêtre de l'explorateur pour voir le document sauvé.
    Je suis d'accord.

    Mais la fonctionnalité décrite:
    Citation Envoyé par nOwXO
    Cela revient à la fonction présente sur la majorité des navigateurs web, lorsque que l'on fait un téléchargement : clique droit -> ouvrir le dossier de destination du fichier
    n'est (heureusement) pas réalisée avec "explorer".

    - W

  8. #8
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    La réponse a été donnée... merci une nouvelle fois à Tyrtamos et Wiztricks.

    Pour plus de renseignements http://qt.developpez.com/doc/4.7/qfiledialog/ !!! La doc (et qui plus est la traduite) est là pour ça...

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci de vos réponses ! J'ai déjà étudié la doc en ce qui concerne QFileDialog et QDir Je ne cherche pas à ouvrir un fichier, ce que la fonction getOpenFileName() fait très bien, mais je cherche simplement, lorsque je clique sur mon bouton, à faire apparaître une fenêtre tout à fait normale, comme lorsque l'on fait Démarrer -> Documents et non pas une fenêtre pour ouvrir un fichier avec les boutons Ouvrir et Annuler.

    J'espère avoir était plus clair dans mes explications, merci d'avance pour vos réponse

  10. #10
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bon ben si tu ne veux vraiment pas les boutons du QFileDialog alors je ne vois que trois solutions :
    • tu trouves un moyen de les enlever ;
    • tu crées une fenêtre dans laquelle tu listes les fichiers et dossiers (voir QDir::entryList) ;
    • tu lance l'explorateur windows comme nico te l'a suggéré.


    ++

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 379
    Points : 36 923
    Points
    36 923
    Par défaut
    Salut,

    Vous pouvez essayer de regarder les QDirModel et QFileSystemModel. Ils peuvent être associes a une QTreeView.
    Ils permettent d'avoir un équivalent de "explorer" sous contrôle de l'application.
    Une mise en œuvre simple serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> from PyQt4.QtGui import QApplication, QDirModel, QTreeView
    >>> app = QApplication([])
    >>> model = QDirModel()
    >>> view = QTreeView()
    >>> view.setModel(model)
    >>> view.setIndentation(20)
    >>> view.setSortingEnabled(1)
    >>> view.setWindowTitle("view")
    >>> view.show()
    >>> app.exec_()
    note: QFileSystemModel se met en œuvre de la même façon. Il sait faire plein de choses mais la documentation est épaisse.
    - W

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Merci pour toutes vos réponses !
    J'ai donc utilisé la commande DOS comme Nico_tournai, Jiyuu et wiztricks me l'ont conseillé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.system("%SystemRoot%\explorer.exe /n,/e, monurl")
    Merci pour tout !

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Je pense avoir compris ce que tu voulais. Simplement ouvrir dans explorer un dossier qui n'aura aucun lien avec ton application.

    Exemple, je veux ouvrir un fichier (ou un dossier) avec l'application par defaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OpenFile = QDesktopServices()
    file = "/home/hizoka"
    OpenFile.openUrl(QUrl(file))
    Attention !
    Si ton fichier contient des espaces ca plante il faut alors faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OpenFile = QDesktopServices()
    file = "file://" + "/home/hizoka/fichier avec espace"
    OpenFile.openUrl(QUrl(file))
    J'espere que c'etait bien ca que tu voulais

    EDIT : Apres je ne sais pas comment ça se passe sous windows...

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

Discussions similaires

  1. [Toutes versions] Ne pas afficher la fenêtre windows avec la commande "Shell"
    Par Dan.exe dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/07/2014, 21h51
  2. ouvrir une fenêtre windows avec visual C++
    Par JeanNoel53 dans le forum Visual C++
    Réponses: 9
    Dernier message: 13/04/2012, 10h36
  3. Réponses: 16
    Dernier message: 18/03/2007, 13h30
  4. Centrer une fenêtre ouverte avec window.open et statusbar
    Par Michaël dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 13h07
  5. Réponses: 1
    Dernier message: 26/02/2005, 12h55

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