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 :

QtGui QInputDialog getItem


Sujet :

PyQt Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut QtGui QInputDialog getItem
    Bonsoir,

    J'essaie (en vain) d'attribuer un listing de fichier dans un item.

    Je m’explique:
    J'ai un répertoire ou je liste mes fichiers, sélectionne que ceux ayant comme extension ".comp"
    Ensuite (et c'est la ou je bloque) je n'arrive pas à mettre le résultat de la recherche dans le QInputDialog.getItem
    afin de venir sélectionner un de ces fichiers dans le menu déroulant.
    Une fois le fichier sélectionné je l'ouvre en cliquant sur OK.

    un bout du code:

    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
     
       def loadComp(self):
            [ ... bout de code supp...]
            if os.path.isfile(os.path.abspath(lPathCompName)):
                #verifier s'il y a version:
                dirs = os.listdir(lPathComp)
                for file in dirs:
                    if file.endswith('.comp'):
                        print file
                self.loadVersion()
     
        def loadVersion(self):
            layout = QtGui.QFormLayout()
            self.btn = QtGui.QPushButton("Choisir version : ")
            self.btn.clicked.connect(self.loadVersion)
            items = ("exemple_01", "exemple_02")
            item, ok = QtGui.QInputDialog.getItem(self, "Version", 
             "Choisir version : ", items, 0, False)
            if ok and item:
                print item
    résultat de print file:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    fichier_01.comp
    fichier_02.comp
    fichier_03.comp
    fichier_04.comp
    fichier_05.comp
    merci,

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Citation Envoyé par Miaz3 Voir le message
    J'ai un répertoire ou je liste mes fichiers, sélectionne que ceux ayant comme extension ".comp"
    Ensuite (et c'est la ou je bloque) je n'arrive pas à mettre le résultat de la recherche dans le QInputDialog.getItem
    afin de venir sélectionner un de ces fichiers dans le menu déroulant.
    Avez vous une raison particulière de ne pas utiliser un QFileDialog ? C'est quand même fait pour çà.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    Non, pas du tout. j'apprend en même temps, je ne connaissais pas QfileDIalog.
    Après vérification, QfileDIalog permet l'ouverture d'une fenêtre et de venir choisir les fichiers ? c'est bien ça ?

    Ce que je recherche, c'est d'afficher des fichiers dans un menu déroulant.
    Ex ci-dessous (en relation avec le bout de code plus haut):
    Nom : exemple.jpg
Affichages : 404
Taille : 12,8 Ko

    Fichier01, fichier02...sont de simple texte en item.

  4. #4
    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
    Salut,

    Pour le dialog ça a l'air d'être bon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Python 2.7.3 (default, Jun 22 2015, 19:43:34) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from PyQt4 import QtCore, QtGui
    >>> app = QtGui.QApplication([])
    >>> def foo():
    ...     items = ("exemple_01", "exemple_02")
    ...     i, r = QtGui.QInputDialog.getItem(None, "Version", "choisir", items, 0, False)
    ...     print i, r
    ... 
    >>> foo()
    exemple_02 True
    Mais tu mélanges d'autres choses dans cette fonction, un QFormLayout, un QPushButton, qui servent à quoi ?

    De plus le bouton est connecté à cette même fonction. Connexion en boucle ?

    Dans ta première fonction, tu ne conserves pas la liste des fichiers .comp, je suppose qu'il manque du code.

  5. #5
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    J'ai récupérer un bout de code sur le net pour comprendre comment ça fonctionne et apparemment il y a des choses en trop ^^
    Donc, QFormLayout, un QPushButton je les supprimes car ils ne me servent à rien.

    Dans ta première fonction, tu ne conserves pas la liste des fichiers .comp, je suppose qu'il manque du code.
    CàD ? je doit les conserver en les mettant dans une liste ?

    Voici toute la méthode :
    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
        def loadComp(self):
            print("-------------------loadComp-------------------")
            lep = self.lcTxtEP.text()
            lsc = self.lcTxtSC.text()
            lstep = self.lcTxtSTEP.text()
            lver = self.lcTxtVER.text()
            lCompName = (lep) + (nameScore) + (lsc) + (nameScore) + (lstep) + (nameScore) + (lver) + (nameExt)
            lPathComp = pathRoot + (lep) + pathRenderDir + (lsc) + (pathSlash)
            lPathCompName = pathRoot + (lep) + pathRenderDir + (lsc) + (pathSlash) + (lCompName)
            print ("Load Comp : " + (lCompName))
            #Verifie si Fusion.exe n'est pas déjà lancé.
            self.runFusion()
            #Charger la comp si le fichier existe
            if os.path.isfile(os.path.abspath(lPathCompName)):
                #verifier s'il y a version:
                dirs = os.listdir(lPathComp)
                for file in dirs:
                    if file.endswith('.comp'):
                        print file
                self.loadVersion()
    merci

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par Miaz3 Voir le message
    Non, pas du tout. j'apprend en même temps, je ne connaissais pas QFileDIalog.
    Après vérification, QfileDIalog permet l'ouverture d'une fenêtre et de venir choisir les fichiers ? c'est bien ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> from PyQt4.QtGui import QFileDialog, QApplication
    >>> app = QApplication([])
    >>> name = QFileDialog.getOpenFileName(None, "Open File", ".", "Files (*.comp)")
    Ca fait quand même pas mal de lignes en moins...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    re

    Je pense avoir compris quelques chose ^^ et VinS tu as pointé ce qu'il me manquai.
    Il faudrait que je mette tous ça dans une liste. Car quand je fait apparaitre le dialog il me le redemande fois x nombre de fichiers...
    j'ai du merdé quelques part car quand je met dans une liste il me retourne:
    [fichier_01]
    [fichier_02]
    [fichier_03]
    ect...

    alors que [fichier_01, fichier_02, fichier_03, ...] serait plus judicieux.

  8. #8
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> from PyQt4.QtGui import QFileDialog, QApplication
    >>> app = QApplication([])
    >>> name = QFileDialog.getOpenFileName(None, "Open File", ".", "Files (*.comp)")
    Ca fait quand même pas mal de lignes en moins...

    - W
    Merci du tips wiztricks, mais cela ne correspond pas trop à ce que je recherche.
    En effet ça m'ouvre une fenêtre pour aller chercher les fichiers, or ce que je recherche c'est afficher cette liste de fichier dans un menu déroulant.

  9. #9
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    Des ajouts dans une liste c'est bien append() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if os.path.isfile(os.path.abspath(lPathCompName)):
                #verifier s'il y a version:
                dirs = os.listdir(lPathComp)
                f = []
                for file in dirs:
                    if file.endswith('.comp'):
                        print f.append(file)
                return f
    retour console :
    none
    none
    none
    ...

  10. #10
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    Bon ça avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if os.path.isfile(os.path.abspath(lPathCompName)):
                #verifier s'il y a version:
                for files in os.listdir(lPathComp):
                    if files.endswith('.comp'):
                        list = []
                        list.append(files)
                        print list
                items = (list)
                i, r = QtGui.QInputDialog.getItem(self, "Version","Choisir : ", items, 0, False)
                print i, r
    Nom : ex_02.jpg
Affichages : 377
Taille : 11,4 Ko

    Par contre, il ne m'affiche que le dernier fichier...

    voici le print list:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ['ep001_sc001_comp_v001.comp']
    ['ep001_sc001_comp_v002.comp']
    ['ep001_sc001_comp_v003.comp']
    ['ep001_sc001_comp_v004.comp']
    ['ep001_sc001_comp_v005.comp']
    ['ep001_sc001_comp_v006.comp']
    ['ep001_sc001_comp_v007.comp']
    ['ep001_sc001_comp_v008.comp']
    une idée ?

  11. #11
    Membre chevronné
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    if files.endswith('.comp'):
                        list = []
                        list.append(files)
                        print list
    à chaque tour tu vide ta liste là

    essaie plutot un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if os.path.isfile(os.path.abspath(lPathCompName)):
                items = []
     
                #verifier s'il y a version:
                for files in os.listdir(lPathComp):
                    if files.endswith('.comp'):
                        items.append(files)
                        print items
                i, r = QtGui.QInputDialog.getItem(self, "Version","Choisir : ", items, 0, False)
                print i, r

  12. #12
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    pfff bhé oui...ça m'apprendra à trop me précipiter, merci hizoka

    Merci encore à tous !
    bonne journée,

    ++

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/03/2008, 10h27

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