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 :

Ouvrir un fichier [QtGui]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut Ouvrir un fichier
    Bonjour ,
    j'essaie d'ouvrir un fichier sur le disque de mon ordinateur en cliquant sur un sous-menu: ouvrir un fichier
    avant j'utilisais tkFileDialog.askopenfilename avec Tkinter mais maintenant je travail avec PyQt , est ce qu'il existe une fonction qui permet de le faire en PyQt
    , mon but c'est quand je clique sur ouvrir j'appelle la fonction nécessaire qui permet d'ouvrir une fenêtre vers les fichiers de l'ordinateur et qui récupère le chemin du fichier sélectionner
    merci

  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,

    Voilà un petit code de test qui répondra à ta question:

    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
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # Python 2.7
     
    import sys
    from PyQt4 import QtCore, QtGui
     
    class Fenetre(QtGui.QWidget):
     
        def __init__(self, parent=None):
            super(Fenetre, self).__init__(parent)
     
            fichier = QtGui.QFileDialog.getOpenFileName(self, 
                         u"Sélectionnez le fichier", 
                         u"toto.txt", 
                         u"Fichier texte (*.txt);;Tous (*.*)")
            fichier = unicode(fichier)
     
            if fichier!=u"":
                print u"fichier demandé:", fichier
            else:
                print u"aucun fichier demandé"
     
    app = QtGui.QApplication(sys.argv)
    fen = Fenetre()
    fen.show()
    sys.exit(app.exec_())
    Tyrtamos

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    merci pour ta réponse , je l'ai adapté à mon travail
    j'ai un sous-menu ouvrir:
    self.actionOuvrir.triggered.connect(self.ouvrir)

    et ma fonction ouvrir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def ouvrir(self):
            fichier = QtGui.QFileDialog.getOpenFileName(self, 
                         u"Sélectionnez le fichier", 
                         u"toto.txt", 
                         u"Fichier texte (*.txt);;Tous (*.*)")
    et j'ai ce message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: QFileDialog.getOpenFileName(QWidget parent=None, QString caption=QString(), QString directory=QString(), QString filter=QString(), QString selectedFilter=None, QFileDialog.Options options=0): argument 1 has unexpected type 'Ui_Fenetre'

    tu as une idée ? !

  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 1er paramètre self de getOpenFileName doit venir d'une classe dérivée de QWidget, alors que la classe crée par QtDesigner hérite de object.

    Il faudrait revoir la structure de ton programme: la classe Fenetre doit dériver de QWidget ou de QMainWindow, et intégrer la classe crée par QtDesigner. Ce n'est pas qu'un problème de "style de programmation": il y a de nombreux avantages à faire comme ça.

    Tyrtamos

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    je comprend de ca que je dois avoir deux classe : une que je crée moi même et qui hérite de QWidget , et l'autre qui est crée par QT Designer et qui hérite d'un objet ,
    la classe Fenêtre qui est généré par Qt Designer hérite d'un objet si je remplace cet objet par QWidget mon programme ne fonctionne plus

  6. #6
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Re, où se trouve ta fonction ouvrir ? dans quelle classe ?

    Si c'est dans la classe de ta fenêtre, utilise le parent de tes QAction (très probablement MainWindow)

    Cela dit, si tu mets 'None' à la place, ça passe neuf fois sur dix.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2004, 13h55
  2. ouvrir un fichier
    Par sofiane61 dans le forum MFC
    Réponses: 3
    Dernier message: 10/01/2004, 23h04
  3. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 13h35
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 15h59

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