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

Python Discussion :

Initialisation methode avec plus de un paramètre [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Initialisation methode avec plus de un paramètre
    Bonjour,

    Je suis bloqué sur un script.
    D'habitude j'initialise les méthodes sur le init, mais jusqu'à présent j'avais que des "self" en paramètre.

    Il se trouve que pour la première fois, j'ai plusieurs paramètres un peu spéciaux. (object et event)
    Cette méthode me permet de récupérer le chemin du fichier glissé/déposé.
    Il s'avère que cette méthode n'a pas besoin d'être initialisée, par contre dans cette méthode je récupère le chemin.
    Et ce chemin j'en ai besoin pour plus tard dans le script...

    J'aimerai savoir comment je peux faire pour récupérer cette liste "pathInput".

    merci,

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    import os
    import re
    import sys
    import numpy as np
    import imageio
     
    from PySide.QtGui import *
    from PySide.QtCore import *
     
    from est_std_ui import Ui_Form_main
     
    class MainPanelUI(QWidget, Ui_Form_main):  
    	def __init__(self):
    		super(MainPanelUI, self).__init__()
     
    		self.setupUi(self)
    		self.drag_drop.installEventFilter(self)
    		self.findHeader()
     
     
     
    	def eventFilter(self, object, event):
    		if (object is self.drag_drop):		
    			if (event.type() == QEvent.DragEnter):
    				if event.mimeData().hasUrls():
    					event.accept()   
    				else:
    					event.ignore()
    			if (event.type() == QEvent.Drop):
    				if event.mimeData().hasUrls():   
    					for url in event.mimeData().urls():	
    						pathInput = []					
    						pathInput.append(str(url.toLocalFile()))
    			return False 
                            return pathInput
    		return False
     
            def findHeader(self):
    		#tt = MainPanelUI()
    		#tt.eventFilter()
    		print "walou"
     
     
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = MainPanelUI()
        window.show()
        sys.exit(app.exec_())

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

    Citation Envoyé par Miaz3 Voir le message
    par contre dans cette méthode je récupère le chemin.
    Et ce chemin j'en ai besoin pour plus tard dans le script...

    J'aimerai savoir comment je peux faire pour récupérer cette liste "pathInput".
    Il suffit de l'assigner à une variable globale ou a un attribut d'instance/classe i.e. quelque chose qui restera accessible à la sortie de la méthode/fonction. Par exemple: self.pathInput. Et si ces notions vous sont étrangères, çà serait bien de les (re)voir.

    - 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
    Pour mettre un 'self.' il faut que la classe soit initialisé au départ, non ?
    Car c'est se que par quoi j'avais commencer, voila ce que ça me retourne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AttributeError: 'MainPanelUI' object has no attribute 'pathInput'
    Comme je disait plus haut, c'est surtout cette méthode qui me fait bloquer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    def eventFilter(self, object, event)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par Miaz3 Voir le message
    Pour mettre un 'self.' il faut que la classe soit initialisé au départ, non ?
    Si la méthode à reçoit comme arguments: def eventFilter(self, object, event) "self" a été initialisé.

    Si tout cela vous déconcerte, ouvrez un tuto sur les classes (je vous ai donné un pointeur dans la réponse précédente). "Programmer", c'est comprendre ce que l'ordinateur va bien pouvoir faire des instructions que vous lui donnez à exécuter. Donc si "classes", "attributs", "portée des variables", ... sont des notions qui vous échappent, il vous fait les (re)voir.

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

  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
    Finalement j'ai feinté en faisant passer le chemin sur un lineEdit. Ensuite je récupère le text()...
    Je suis sur que vous me montré le bon chemin à prendre mais j'ai la tête dans le guidon...je doit être bigleux...c'est sous mes yeux

    Je laisse de coté et regarderai ça demain.


    Merci,

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

Discussions similaires

  1. [Propel] Problème d'insertion avec plus de 9 paramètres
    Par doodoune dans le forum ORM
    Réponses: 6
    Dernier message: 08/07/2011, 09h53
  2. Réponses: 0
    Dernier message: 30/03/2010, 09h37
  3. invoque une methode avec paramétre string
    Par Invité dans le forum Services Web
    Réponses: 0
    Dernier message: 21/11/2009, 01h04
  4. Dataset : Methode avec paramètres + DB Access
    Par chrisrock dans le forum Accès aux données
    Réponses: 1
    Dernier message: 18/07/2007, 05h53
  5. [C#][WebServices] Appel methode avec une classe en paramètre
    Par bran_noz dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/09/2004, 16h41

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