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 :

QmessageBox : TypeError: arguments did not match any overloaded call


Sujet :

PyQt Python

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 98
    Points : 59
    Points
    59
    Par défaut QmessageBox : TypeError: arguments did not match any overloaded call
    Bonjour à tous,

    Je suis face à une erreur que je ne comprend pas.
    Lors que j'ai des exceptions j'utilise des QMessageBox pour informer l'utilisateur de mon plugin des erreurs ou le faire choisir une autre solution. J'ai un peu modifié mon code aujourd'hui j'ai ce message d'erreur maintenant.
    Cela ce produit pour tous les QmessageBox de mon code. Voici un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Traceback (most recent call last):
      File "C:\Users\AUGU\.qgis2\python\plugins\PostgisConnectionCopy\ui_postgisconnection.py", line 415, in val_import
        self.wp.wp_postgis(values, ui_values,list_values)
      File "C:\Users\AUGU\.qgis2\python\plugins\PostgisConnectionCopy\wp_importation.py", line 67, in wp_postgis
        QtGui.QMessageBox.warning(self, 'Message',"The project :  %s is already in the database."%(projNum))
    TypeError: arguments did not match any overloaded call:
      QMessageBox.warning(QWidget, QString, QString, QMessageBox.StandardButtons buttons=QMessageBox.Ok, QMessageBox.StandardButton defaultButton=QMessageBox.NoButton): argument 1 has unexpected type 'instance'
      QMessageBox.warning(QWidget, QString, QString, int, int, int button2=0): argument 1 has unexpected type 'instance'
      QMessageBox.warning(QWidget, QString, QString, QString, QString button1Text=QString(), QString button2Text=QString(), int defaultButtonNumber=0, int escapeButtonNumber=-1): argument 1 has unexpected type 'instance'
    La classe dans laquelle est ce QmsgBox est comme cela:
    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
    # -*- coding: utf-8 -*-
    from PyQt4 import QtCore, QtGui
    from PyQt4.QtCore import *
    from PyQt4.QtGui import *
    import sys
    import os
    import unicodedata
    import psycopg2
    import xlrd
    from xlrd import XLRDError
     
     
    class Wp_importation:
         def __init__(self):
             wp_val =()
             data_ui=()
             wp_list=()
             self.wp_postgis(wp_val,data_ui,wp_list)        
     
         def wp_postgis(self,data, data_ui,list_data) :
            ...
            ici le code et les appels des QMessageBox
            ...
    Pour info le principe de la classe est : Lire un fichier excel et d'importer les données dans une base de données postgresql.

    Merci d'avance !


  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 Aurelie, toujours immergée dans ton plugin ...

    Pour ton erreur c'est normal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QMessageBox.warning(QWidget, QString, QString, ......
    Le premier argument doit être un QWidget ou dérivé or toi tu lui passes self soit l'instance de ta classe qui n'hérite pas de QWidget.

    Essaye en remplaçant self par None, si ça ne passe pas alors crée un widget avant et passe le en premier argument.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            widget = QWidget()
            QtGui.QMessageBox.warning(widget, 'Message',"The project :  %s is already in the database."%(projNum))

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 98
    Points : 59
    Points
    59
    Par défaut
    Oui toujours à font sur ce plugin ! Je vois la fin arriver mais bon j'ai encore du travail ! Mais maintenant je bloque plus toutes 5min, j'avance vite et c'est un plaisir ! Même si j'ai pas encore tous les bon réflexes, je commence à pouvoir faire des choses vraiment inintéressantes.

    Essaye en remplaçant self par None, si ça ne passe pas alors crée un widget avant et passe le en premier argument.
    Le None marche à merveille !

    Merci encore pour l'aide !
    A bientôt pour une autre question !

    Aurélie

Discussions similaires

  1. TypeError: argument of type 'int' is not iterable
    Par salemeone dans le forum Général Python
    Réponses: 1
    Dernier message: 17/04/2014, 17h09
  2. TypeError: argument of type 'bool' is not iterable
    Par benoxy dans le forum Odoo (ex-OpenERP)
    Réponses: 7
    Dernier message: 04/01/2014, 21h48
  3. Réponses: 1
    Dernier message: 16/09/2013, 14h10
  4. does not match any in class
    Par dhbmedanis dans le forum C++
    Réponses: 7
    Dernier message: 02/06/2012, 14h16
  5. Réponses: 0
    Dernier message: 30/04/2010, 10h47

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