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 :

Incompatibilité de type de variable (apparement) avec PyQt [QtGui]


Sujet :

PyQt Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Incompatibilité de type de variable (apparement) avec PyQt
    Bonjour tout le monde ! Depuis quelques jours, j'éprouve quelques problèmes quant au fonctionnement de mon code. J'ose espérer que vous avez la solution, ou quelque chose qui pourrait m'aider à la résolution du problème. Voici les codes en question :

    main.py :
    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
     
    # -*- coding: utf-8 -*-
    from PyQt4 import QtCore, QtGui
    import sys
    from globalui import *
     
    def main():
    	#Tous le code principal ici
    	app = QtGui.QApplication(sys.argv)
    	print("lolilol")
    	frmMain.show()
     
    	sys.exit(app.exec_())
     
     
    if __name__ == "__main__":
    	main()
    puis globalui.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    # -*- coding: utf-8 -*
    from frmMain_ui import *
    from frmTrajets_ui import *
     
    class frmMain(QtGui.QWidget):
    	def __init__(self, parent=None):
    		super(frmMain, self).__init__(parent)
    		self.ui = Ui_frmMain()
    		self.ui.setupUi(self)
    		self.ui.cmdAddTrajet.clicked.connect(self.ouvrir)
    Le tout génère ainsi cette erreur, je cite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Démarrage*: python3 /home/florian/Documents/Programmation/demo/main.py
    lolilol
    Traceback (most recent call last):
      File "/home/florian/Documents/Programmation/demo/main.py", line 16, in <module>
        main()
      File "/home/florian/Documents/Programmation/demo/main.py", line 10, in main
        frmMain.show()
    TypeError: QWidget.show(): first argument of unbound method must have type 'QWidget'
    *** Terminé avec code de retour*: 1 ***
    Merci par avance, cela fait depuis plusieurs jours que je tâche de résoudre le problème sans succès.

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Voici un exemple typique où import * participe à l'illisibilité du code, en tous cas à l'incompréhension du lecteur de passage.

    Il eut été préférable de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from globalui import frmMain, frmTrajets
    Pour ton problème, comment frmMain, arrive-t-il dans ton code main() ? grâce à l'import de globalui ? Ce n'est pas suffisant pour en utiliser la méthode show(), à ce stade de ton code frmMain n'est qu'un nom.

    Il faut l'instancier pour l'utiliser.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Voici un exemple typique où import * participe à l'illisibilité du code, en tous cas à l'incompréhension du lecteur de passage.

    Il eut été préférable de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from globalui import frmMain, frmTrajets
    Pour ton problème, comment frmMain, arrive-t-il dans ton code main() ? grâce à l'import de globalui ? Ce n'est pas suffisant pour en utiliser la méthode show(), à ce stade de ton code frmMain n'est qu'un nom.

    Il faut l'instancier pour l'utiliser.
    D'accord, donc l'instancier, signifie ainsi

    quelquechose = frmMain
    puis
    quelquechose.show()

    (Si j'ai bien compris ?)

    EDIT : Quoi qu'il en soit, ça ou pas, j'ai essayé ça ne marche pas non plus, l'erreur se fait au niveau du show dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	prout = frmMain()	
    	prout.show()

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    À la réflexion, en regardant ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    # -*- coding: utf-8 -*
    from frmMain_ui import *
    from frmTrajets_ui import *
     
    class frmMain(QtGui.QWidget):
    	def __init__(self, parent=None):
    		super(frmMain, self).__init__(parent)
    		self.ui = Ui_frmMain()
    		self.ui.setupUi(self)
    		self.ui.cmdAddTrajet.clicked.connect(self.ouvrir)
    Ui_frmMain semble tout droit sortir de Qt Designer et il y a de fortes chances qu'elle hérite de QMainWindow, tu m'arrêtes si je me trompe, donc deux questions se posent:

    .1 Pourquoi la classe frmMain doit-elle hériter de QWidget ?
    .2 Pourquoi frmMain.show() alors que ce devrait être frmMain.ui.show() ?


    Ça c'est pour commencer.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Déjà je voulais tout de même te remercier pour tes réponses ^^

    Bon reprenons :

    Oui ça sort bien de QtDesigner
    1 : Parce qu'avec QtGui.QMainWindow c'est le même problème :

    J'oubliais de préciser globalui.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # -*- coding: utf-8 -*
    from frmMain_ui import *
     
    class frmMain(QtGui.QMainWindow):
    	def __init__(self, parent=None):
    		super(frmMain, self).__init__(parent)
    		self.ui = Ui_frmMain()
    		self.ui.setupUi(self)
    		self.ui.cmdAddTrajet.clicked.connect(self.ouvrir)
    J'ai toujours, je cite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Démarrage*: python3 /home/florian/Documents/Programmation/demo/main.py
    lolilol
    Traceback (most recent call last):
      File "/home/florian/Documents/Programmation/demo/main.py", line 17, in <module>
        main()
      File "/home/florian/Documents/Programmation/demo/main.py", line 11, in main
        frmMain.show()
    TypeError: QWidget.show(): first argument of unbound method must have type 'QWidget'
    *** Terminé avec code de retour*: 1 ***
    2 : Heu non parce que frmMain.ui permet l'accès aux widgets disposés sur la fenêtre, comme tu peux le constater :


  6. #6
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    La présence du centralWidget semble confirmer ce que je dis, c'est à dire que Ui_frmMain() est une QMainWindow.

    Donc, c'est bien sur l'ui que s'applique la méthode show().

    Quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     # -*- coding: utf-8 -*
    from frmMain_ui import *
    from frmTrajets_ui import *
     
    class frmMain(object):
    	def __init__(self):
    		super(frmMain, self).__init__()
    		self.ui = Ui_frmMain()
    		self.ui.setupUi(self)
                    self.ui.show()
    		self.ui.cmdAddTrajet.clicked.connect(self.ouvrir)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par VinsS Voir le message
    La présence du centralWidget semble confirmer ce que je dis, c'est à dire que Ui_frmMain() est une QMainWindow.

    Donc, c'est bien sur l'ui que s'applique la méthode show().

    Quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     # -*- coding: utf-8 -*
    from frmMain_ui import *
    from frmTrajets_ui import *
     
    class frmMain(object):
    	def __init__(self):
    		super(frmMain, self).__init__()
    		self.ui = Ui_frmMain()
    		self.ui.setupUi(self)
                    self.ui.show()
    		self.ui.cmdAddTrajet.clicked.connect(self.ouvrir)
    Ouais mais là y a un problème : Je fais comment pour l'ouvrir ? x)

  8. #8
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Je corrige mon post précédent.


    Si Ui_frmMain() se présente comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class Ui_frmMain(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName( ....
    Alors utilises la comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class frmMain(object):
    	def __init__(self):
    		super(frmMain, self).__init__()
                    MainWindow = QtGui.QMainWindow()
    		self.ui = Ui_frmMain()
    		self.ui.setupUi(MainWindow)
                    self.ui.show()
    		self.ui.cmdAddTrajet.clicked.connect(self.ouvrir)
    Mais nous sommes bien d'accord que pour accéder à tes widgets à partir de ton tout premier code tu devras toujours faire self.frmMain.ui.monWidget

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Elle commence par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class Ui_frmMain(object):
        def setupUi(self, frmMain):
            frmMain.setObjectName(_fromUtf8("frmMain"))
    Mais je suis vraiment désolé, mais je ne comprend pas vraiment comment l'afficher du coup

  10. #10
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Là c'est que tu as modifié MainWindow par frmMain dans le script produit par pyuic4, chose qu'il ne fallait pas faire.

    Tu génères une confusion avec frmMain et l'instance de QMainWindow qui sont deux choses bien différentes.

    Remets MainWindow à la place de frmMain dans le script de l'interface et essayes mon dernier code.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Ouais j'ai modifié mais je ne sais toujours pas comment faire pour l'afficher depuis main.py

  12. #12
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Comme tu as plusieurs fichiers semble-t-il pour une même chose, ton problème vient peut-être de là.

    Un exemple basique:

    Ceci sort du Designer et de la moulinette pyuic4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    from PyQt4 import QtCore, QtGui
     
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(609, 432)
            self.centralwidget = QtGui.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.gridLayout = QtGui.QGridLayout(self.centralwidget)
            self.gridLayout.setObjectName("gridLayout")
            self.verticalLayout = QtGui.QVBoxLayout()
    ....
    Mon code pour le lancer, 1ère version:
    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
     
    import sys
     
    from PyQt4 import QtCore, QtGui
     
    from ui_myapp import Ui_MainWindow
     
    class MyApp(object):
        def __init__(self):
            self.ui = Ui_MainWindow()
            self.ui.setupUi(main)
            main.show()
     
    if __name__ == '__main__':
        app = QtGui.QApplication(sys.argv)
        main = QtGui.QMainWindow()
        myapp = MyApp()
        sys.exit(app.exec_())
    Deuxième version:
    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
     
    import sys
     
    from PyQt4 import QtCore, QtGui
     
    from ui_myapp import Ui_MainWindow
     
    class MyApp(object):
        def __init__(self):
            self.main = QtGui.QMainWindow()
            self.ui = Ui_MainWindow()
            self.ui.setupUi(self.main)
            self.main.show()
     
    if __name__ == '__main__':
        app = QtGui.QApplication(sys.argv)
        myapp = MyApp()
        sys.exit(app.exec_())

    Toi, tu as un tout premier code (qui ne possède qu'une fonction d"ailleurs) et qui instancie quelque chose qui instancie enfin l'interface. Si ce script ne sert qu'à ça, supprimes le, il est à l'origine de ta confusion.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Ouhlà je suis perdu >< Par « Fonctions inutile » tu parles bien de frmMain de « globalui.py » ?

    J'en profite pour dire que l'application finale sera en multifenêtrage, donc que plusieurs fonctions vont fleurir dedans.

    Mais là je suis complètement paumé... J'ai passé presque 2 jours à essayer de résoudre ce problème, donc je ne dois pas être spécialement en forme non plus (j'avoue que je suis presque sur le point d'avoir envie de défenestrer mon ordinateur). Puis je débute un peu dans pyQt je n'ai pas trouvé de tutoriaux assez « clairs » pour me permettre de faire des applications en multifenêtrage...

    Et là je suis au même point qu'il y a deux jours : Qu'est ce que je fais ? Je suis désolé de te faire perdre du temps mais là je suis paumé

  14. #14
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Je pense que si tu simplifes ton application tu verras les choses plus clairement.

    Combien de fichier as-tu, à quoi servent-ils ?

    Dans l'état actuel, je dirais un fichier main pour l'appli elle-même et un fichier pour l'interface. J'ai vu une instance de frmTrajets, mais je n'ai pas saisi à quoi cela servait.

    Quoiqu'il en soit, commence par construire ton appli avec ces deux fichiers dont je parle en te basant sur mon exemple, après ce sera plus simple.

    Le multifenêtrage je ne sais pas ce que ça veut dire, par contre. Avec Qt on a une main window et le reste ce sont des boîtes de dialogue.

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Alors c'est vrai que présenté ainsi, le « multifenetrage » ce n'est pas très claire ^^

    En fait, ce que je voulais dire, c'est tout simplement qu'il y aurait plusieurs boîtes de dialogue dans mon application. Tu fais bien de me dire pour les Dialogues d'ailleurs.

    Concernant frmTrajets, c'est la 2ème fenêtre justement, j'avais pas envie de complexifier la lecture pour que l'on puisse m'aider plus rapidement, donc j'ai estimé futile l'ajout des classes concernant frmTrajets. Et l'import qui reste fut un oubli de ma part ^^

    Quoi qu'il en soit, je te remercie beaucoup, je garde ton exemple sous le coude, et je ferais tout ça à tête plus reposée tranquillement o/

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Alors là ... Je ne sais pas ce que vous vous pouvez diagnostiquer mais :


    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
    import sys
    from PyQt4 import QtGui
    import frmMain_ui
    import frmSecond_ui
     
    ####################################################
     
    class frmMain_objet(QtGui.QMainWindow):
    	def __init__(self):
    		super(frmMain_objet, self).__init__()
    		self.ui = frmMain_ui.Ui_frmMain()
    		self.ui.setupUi(self)
    		####################################
    		self.ui.cmdCliquer.clicked.connect(self.pushButton_onClick)
    	def pushButton_onClick(self):
    		instance = frmSecond_objet()
    		instance.show()
     
    class frmSecond_objet(QtGui.QDialog):
    	def __init__(self):
    		super(frmSecond_objet, self).__init__()
    		self.ui = frmSecond_ui.Ui_frmSecond()
    		self.ui.setupUi(self)
     
    ###################################################
     
    app = QtGui.QApplication(sys.argv)
     
    frmMain = frmMain_objet()
    frmMain.show()
     
    sys.exit(app.exec_())
    Ça, ça ne marche pas ! instance.show n'affiche pas la seconde fenêtre... Par CONTRE si j'ajoute ceci juste après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("prout").capitalize()
    Celà générre une erreur sur la ligne print, cependant ... Attention : instance s'affiche ahaha .... C'est drôle... Comment j'ai trouvé ça ? Ça me soulait tellement que je me suis mis à faire n'importe quoi x)

  17. #17
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    C'est normal que ça ne marche pas.

    Dans ce script, appellons le main, tu crées une classe qui hérite de QMainWindow sans raison et qui instancie ta fenêtre principale qui elle devrait hériter directement de QMainWindow.

    Ce n'est pas du tout ainsi que je le montre dans mon exemple.

    Montres nous les entêtes des deux classes importées, la fenêtre principale et la boîte de dialogue.

    Ce que tu veux faire est beaucoup simple que ce que fais en réalité.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bon j'efface tout ça pour dire que finalement ça marche (j'ai trouvé comment résoudre le problème).

    Merci beaucoup encore une fois VinS et je met résolu du coup ^^

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

Discussions similaires

  1. Incompatibilité de type sur variable dans Datediff
    Par clickandgo dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/06/2013, 15h32
  2. Variables locales avec TYPE
    Par PaulBilou dans le forum SQL
    Réponses: 3
    Dernier message: 20/06/2007, 22h39
  3. Réponses: 9
    Dernier message: 26/05/2007, 14h53
  4. Réponses: 4
    Dernier message: 18/03/2007, 17h09
  5. Problème avec les types de variable
    Par binhjuventus dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/07/2006, 12h30

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