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 :

AttributeError: 'QAction' object has no attribute 'clicked'


Sujet :

PyQt Python

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut AttributeError: 'QAction' object has no attribute 'clicked'
    Bonjour, j'utilise Python et Qt etj'ai cette erreur qui s'affiche pour cette ligne:
    self.fen.actionAjouter.clicked.connect(self.cont_ajouter)


    (fen est ma fenetre principale, actionAjouter est mon bouton sur cette fenetre, clicked est le signal et cont_ajouter est mon slot que j'ai crée juste en dessous.

    Merci d'avance.

  2. #2
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut
    up!

  3. #3
    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,

    Remplace clicked par triggered

    Toute la vérité ici: http://pyqt.sourceforge.net/Docs/PyQt4/qaction.html

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut
    Merci pour le réponse; mais cela me crée une autre erreur:

    AttributeError: 'fenAjouter' object has no attribute 'nom'

    Voici ma classe fenAjouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class fenAjouter(QtWidgets.QMainWindow,Ui_DialogAjouter):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
     
    		self.setupUi(self)
     
     
     
    	def ouvrirAjouter (self):
    		self.show()
    Dans mon model:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    def ajouter(self, f):
    		self.l.append(f)
    		print("on a ajouter la personne suivante : {0} {1} {2} {3} " .format(f.nom,f.prenom,f.numero,f.dpt))
    et mon controler:
    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
     
     
     
    class controler:
    	def __init__(self,rep,fen,f2,f3,f4):
    		self.rep=rep
    		self.fen=fen
    		self.f2=f2
    		self.f3=f3
    		self.f4=f4
     
     
     
    		fen.actionAjouter.triggered.connect(self.cont_ajouter(f2))
    		self.fen.actionRechercher.triggered.connect(self.cont_rechercher())
    		self.fen.actionSupprimer.triggered.connect(self.cont_supprimer())
     
    	def cont_ajouter(self,f2):
    		self.rep.ajouter(f2)
     
    	def cont_rechercher(self):
    		self.rechercher
     
     
     
    	def cont_supprimer(self):
    		self.supprimer
    Manque-t-il des choses ?

  5. #5
    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
    Tu ne dois pas mettre de parenthèses au slots dans tes connexions de signaux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     		fen.actionAjouter.triggered.connect(self.cont_ajouter)
    		self.fen.actionRechercher.triggered.connect(self.cont_rechercher)
    		self.fen.actionSupprimer.triggered.connect(self.cont_supprimer)
    Lorsque tu fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            fen.actionAjouter.triggered.connect(self.cont_ajouter(f2))
    cela veut dire que tu connectes le signal au retour de la fonction cont_ajouter().

    Puisque l'argument transmit est connu et ne change pas tu peux directement le mettre dans le slot.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	def cont_ajouter(self):
    		self.rep.ajouter(self.f2)
    Est-ce cette fonction qui appelle la méthode ajouter(self, f) de ton modèle ?
    Auquel cas rajoute un print pour voir ce qu'il en est.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	def cont_ajouter(self):
                print("%s, %s" %(self.f2, self.f2.nom))
           	    self.rep.ajouter(self.f2)
    Pas normal non plus que tu aies un double héritage ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class fenAjouter(QtWidgets.QMainWindow,Ui_DialogAjouter):
    et pourquoi QMainWindow pour ce qui semble être une boîte de dialogue ?

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut
    Bonsoir Vinss, j'ai modifier ce que tu m'as dit. La fonction cont_ajouter est bien celle qui appelle la fonction ajouter du modèle. Pour la fenêtre de dialogue qui hérite de QMainWindow, je pensais que toutes les fenêtre quelque soit leur type héritaient de QMainWindow. Malgrè cela, j'ai toujours la même erreur à savoir:

    self.buttonBox.accepted.connect(DialogAjouter.accept)
    AttributeError: 'fenAjouter' object has no attribute 'accept'



    Cette ligne self.buttonBox.accepted.connect(DialogAjouter.accept) a été régénéré automatiquement avec pyqt5 et voici ma class fenAjouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class fenAjouter(QtWidgets.QMainWindow,Ui_DialogAjouter):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
    		QtWidgets.QDialog.__init__(self, None)
    		self.setupUi(self)
     
     
     
    	def ouvrirAjouter (self):
    		self.show()
    Pour l'appel aux deux constructeurs, on m'a conseillé de faire cela.

    Pourquoi ma classe fenAjouter n'a pas de methode accept alors qu'elle hérite de QMainWindow et de QDialog?

    Merci d'avance.

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

    Citation Envoyé par sabrinouch Voir le message
    Pourquoi ma classe fenAjouter n'a pas de methode accept alors qu'elle hérite de QMainWindow et de QDialog?
    Votre classe hérite de QtWidgets.QMainWindow et de Ui_DialogAjouter mais Ui_DialogAjouter n'hérite pas de QDialog!
    Et appeler QtWidgets.QDialog.__init__(self, None) n'y change rien.

    Pourquoi ne pas lire le b.a.ba de l'utilisation de QtDesigner avec PyQt5?

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

  8. #8
    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
    Citation Envoyé par sabrinouch Voir le message
    Bonsoir Vinss, ... Malgrè cela, j'ai toujours la même erreur à savoir:

    self.buttonBox.accepted.connect(DialogAjouter.accept)
    AttributeError: 'fenAjouter' object has no attribute 'accept'
    ce n'est plus la même erreur.
    Cette ligne self.buttonBox.accepted.connect(DialogAjouter.accept) a été régénéré automatiquement avec pyqt5 et voici ma class fenAjouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class fenAjouter(QtWidgets.QMainWindow,Ui_DialogAjouter):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
    		QtWidgets.QDialog.__init__(self, None)
    		self.setupUi(self)
     
    	def ouvrirAjouter (self):
    		self.show()
    Ce n'est pas le code du dialogue, ça. c'est un fichier intermédiaire qui sert à le lancer. Comme ceux que crée Eric5.

    Supprime totalement toutes références à QtWidgets.QMainWindow dans ce code. Ensuite on verra.

  9. #9
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut
    Merci de votre aide, je n'ai plus ce problème et ma fenêtre principale s'affiche à la compilation du code mais je pense que je fais mal la connexion avec le MVC (C'est la première fois que j'en fais) puisque j'ai l'erreur suivante:
    AttributeError: 'fenAjouter' object has no attribute 'nom'

    J'ai un fichier dialogAjouter. py contenant le code généré par pyuic5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    class Ui_DialogAjouter(QDialog,object):
        def setupUi(self, DialogAjouter):
    C'est une classe héritant de QDialog et dans sa fonction setupUi, il y a tous les menus avec les boutons, etc..

    Dans mon model.py, j'ai mes deux class python qui se nomme fiche et repertoire. Une fiche contient le nom et les informations de la personne et un repertoire contient une liste de fiches ainsi que les méthodes permettant d'ajouter, supprimer,etc... une personne

    Voici le constructeur de ma class fiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class fiche:
     
    	def __init__(self, identifiant, nom, prenom, numero, dpt):
    		self.id = identifiant 
    		self.nom = nom
    		self.prenom = prenom
    		self.numero = numero
    		self.dpt = dpt
    et voici mon répertoire avec ma ex ma methode ajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class repertoire:
     
    	def __init__(self, l):
    		self.l = list()
     
    	def ajouter(self, f):
    		self.l.append(f)
    		print("on a ajouter la personne suivante : {0} {1} {2} {3} " .format(f.nom,f.prenom,f.numero,f.dpt))

    Voici mon controler.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
    18
     
    class controler:
    	def __init__(self,rep,fen,f2,f3,f4):
    		self.rep=rep
    		self.fen=fen
    		self.f2=f2
    		self.f3=f3
    		self.f4=f4
     
     
     
    		self.fen.actionAjouter.triggered.connect(self.cont_ajouter)
     
     
    	def cont_ajouter(self):
    		self.rep.ajouter(self.f2)
    		print("%s, %s" %(self.f2.nom))
    		self.ouvrirAjouter()
    Enfin view.py ma fenêtre principale et ma fenêtre de dialogue qui est censé s'ouviri lorsque dans le menu on clique sur Ajouter:

    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
     
    class fenMain(QtWidgets.QMainWindow,Ui_MainWindow):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
    		self.setupUi(self)
     
     
     
    	def ouvrirMain (self):
    		self.show()
     
     
     
    class fenAjouter(QtWidgets.QMainWindow,Ui_DialogAjouter):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
    		QtWidgets.QDialog.__init__(self,None)
    		#Ui_DialogAjouter.__init__(self)
    		self.setupUi(self)
     
     
    	def ouvrirAjouter(self):
    		self.show()
    Que me manque t-il?

  10. #10
    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
    sans doute que f2 est une fenêtre et non pas une fiche.

    Mets ton print en début de fonction, sinon l'erreur empêche ce print.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	def cont_ajouter(self):
    		print(self.f2)
    		self.rep.ajouter(self.f2)
    		self.ouvrirAjouter()

  11. #11
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut
    Oui c'est vrai c'est une inattention de ma part. Depuis hier j'ai toujours cette même erreur qui me rend dingue j'ai remodifier mon code comme suit:

    dans ma view.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
    18
     
    class fenAjouter(QtWidgets.QMainWindow,Ui_DialogAjouter):
    	def __init__(self):
    		#QtWidgets.QMainWindow.__init__(self,None)
    		QtWidgets.QDialog.__init__(self,None)
    		#Ui_DialogAjouter.__init__(self)
    		self.setupUi(self)
     
    	def lectureAjouter(self):
    		nomAjouter=self.lineEdit.text()
    		prennomAjouter=self.lineEdit_2.text()	
    		numeroAjouter=self.lineEdit_3.text()
    		dptAjouter=self.lineEdit_4.text()
    		data=fiche(nom,prenom,numero,dpt)	
    		return data	
     
    	def ouvrirAjouter(self):
    		self.show()
    la fonction lectureAjouter permet d'écrire dans le zone de texte de ma fenêtre dialogue.

    dans mon controler:
    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
     
     
    class controler:
    	def __init__(self,rep,fen,f2,f3,f4):
    		self.rep=rep
    		self.fen=fen
    		self.f2=f2
    		self.f3=f3
    		self.f4=f4
     
     
     
    		self.fen.actionAjouter.triggered.connect(self.cont_ajouter)
     
    	def cont_ajouter(self):
    		data=self.f2.lectureAjouter()
    		self.rep.ajouter(data)
    		self.rep.updateAjouter(data)
    		print("%s, %s" %(self.data))
    		f2.ouvrirAjouter()
    rep est un repertoire, fen une fenêtre principale, f2 est une fenêtre de dialogue s'ouvrant lorsqu'un utilisateur veut ajouter une fiche et les autres types de fenêtres fonctionnent comme f2 mais avec d'autres fonctions.

    Dans mon model.py:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    class repertoire:
     
    	def __init__(self, l):
    		self.l = list()
     
    	def ajouter(self,fiche):
    		self.l.append(fiche)
    		print("on a ajouter la personne suivante : {0} {1} {2} {3} " .format(f.nom,f.prenom,f.numero,f.dpt))
    Puis dans la fenêtre principale, on remet à jour les données:

    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
     
    class fenMain(QtWidgets.QMainWindow,Ui_MainWindow):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
    		self.setupUi(self)
     
     
     
    	def ouvrirMain (self):
    		self.show()
     
    	def updateAjouter(self,fiche): #Affichage du nouveau contact ajouté.
    		self.listWidget.setSortingEnabled(False) #On permet l'écriture dans les QListWidget.
    		self.listWidget.addItem(nom)
    		self.listWidget_2.setSortingEnabled(False)
    		self.listWidget_2.addItem(prenom)
    		self.listWidget_3.setSortingEnabled(False)
    		self.listWidget_3.addItem(numero)
    		self.listWidget_4.setSortingEnabled(False)
    		self.listWidget_4.addItem(dpt)
    Je ne vois absolument ps ce que j'ai mal fait pour générer cette erreur.

  12. #12
    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
    Quelle erreur ? Tu as modifié ton code, l'erreur ne peut plus être la même.

    Regarde mes commentaires:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	def cont_ajouter(self):
    		data=self.f2.lectureAjouter() # Ceci suppose que f2 est ouverte
    		self.rep.ajouter(data)        # rep est la classe repertoire, I presume
    		self.rep.updateAjouter(data)  # updateAjouter n'est pas dans repertoire mais dans fenMain
    		print("%s, %s" %(self.data))  # Erreur ! tu as deux %s mais une seule donnée, d'ailleurs data ou self.data ?
    		f2.ouvrirAjouter()            # f2 est censée être déjà affichée
    Autre erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		print("on a ajouter la personne suivante : {0} {1} {2} {3} " 
                    .format(f.nom,f.prenom,f.numero,f.dpt))
    # à remplacer par
    		print("on a ajouter la personne suivante : {0} {1} {2} {3} " 
                    .format(fiche.nom,fiche.prenom,fiche.numero,fiche.dpt))

  13. #13
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut
    Bonjour Vinss j'ai corriger mes erreurs:
    Voici ce que j'ai:
    Dans mon controler:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def cont_ajouter(self):
    		self.fenAjou.ouvrirAjouter()
    		data=self.fenAjou.lectureAjouter()
    		print("%s" %(data))
    		self.rep.ajouter(data)
    		self.fen.updateAjouter(data)
    		self.fen.ouvrirMain()
    Dans ma view:

    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
     
     
    class fenAjouter(QtWidgets.QMainWindow,Ui_DialogAjouter):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
    		QtWidgets.QDialog.__init__(self,None)
    		Ui_DialogAjouter.__init__(self)
    		self.setupUi(self)
     
     
     
    	def lectureAjouter(self):
    		nomAjouter=self.lineEdit.text()
    		prennomAjouter=self.lineEdit_2.text()	
    		numeroAjouter=self.lineEdit_3.text()
    		dptAjouter=self.lineEdit_4.text()
    		data=fiche(nomAjouter,prennomAjouter,numeroAjouter,dptAjouter)
    		return data	
     
    	def ouvrirAjouter(self):
    		self.show()
     
    	def accept(self):
    		if self.buttonBox.isChecked():
    			self.fen.updateAjouter(data)
    		else:
    			pass
    J'ai rajouter la methode accept car sinon j'ai toujours l'erreur comme quoi que fenMain n'a pas cet attribut donc j'ai du redéfinir cette méthode mais je n'ai pas trouvé son code source sur Internet donc je ne sais pas si c'est comme cela qu'il faut faire.

    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
     
    class fenMain(QtWidgets.QMainWindow,Ui_MainWindow):
    	def __init__(self):
    		QtWidgets.QMainWindow.__init__(self,None)
    		self.setupUi(self)
     
     
     
    	def ouvrirMain (self):
    		self.show()
     
    	def updateAjouter(self,fiche): #Affichage du nouveau contact ajouté.
    		self.listWidget.setSortingEnabled(False) #On permet l'écriture dans les QListWidget.
    		self.listWidget.addItem(fiche.nom)
    		self.listWidget_2.setSortingEnabled(False)
    		self.listWidget_2.addItem(prennomAjouter)
    		self.listWidget_3.setSortingEnabled(False)
    		self.listWidget_3.addItem(numeroAjouter)
    		self.listWidget_4.setSortingEnabled(False)
    		self.listWidget_4.addItem(dptAjouter)
    Ma fenêtre principale s'affiche et quand je clique sur mon menu j'ai mes fenêtres de dialogue qui s'affiche mais lorsque j'appuie sur le bouton ok pour rajouter une personne, les choses que j'ai écrite ne s'affiche pas sur mes widget de ma fenêtre principale (avec la methode updateAjouter), j'ai l'impression que la fonction setSortingEnabled ne fait rien à moins que il faut rajouter des choses dans ma méthode accept?

  14. #14
    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
    Tu es sûre que ce sont les bons fichiers ?

    Parce que tu as de nouveau un QMainWindow dans la définition de ton dialogue.

    Mets plutôt l'ensemble de tes fichiers en attachement ici, avec les bribes de code que tu montres on ne peut pas se faire une idée de qui fait quoi.

    setSortingEnabled n'a rien à voir avec l'écriture d'items dans les listes.

  15. #15
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2014
    Messages : 53
    Par défaut
    Merci pour ta réponse. J'ai rechercher quelle autre fonction pourrait me convenir comme update() mais rien n'est affiché dans ma fenêtre principale. J'utilisé nomItem.text() pour récuperer le contenu tapé par l'utilisateur, setSortingEnabled pour permettre l'écriture dans un widget et addItem pour rajouter le texte sur cet item apparement ce n'est pas le cas? Dans la doc officielle de Qt j'ai l'impression que rien ne correspond à ce que je veux...

Discussions similaires

  1. AttributeError "nonetype" object has no attribute
    Par Invité dans le forum Général Python
    Réponses: 2
    Dernier message: 14/12/2010, 20h49
  2. Selenium - AttributeError: 'module' object has no attribute
    Par bender1979 dans le forum Général Python
    Réponses: 4
    Dernier message: 09/11/2010, 22h03
  3. Probleme : AttributeError: 'tuple' object has no attribute
    Par MrGecko dans le forum Général Python
    Réponses: 1
    Dernier message: 27/05/2007, 09h59
  4. Réponses: 2
    Dernier message: 26/05/2006, 14h48

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