Bonjour,

Je suis sous python 2.7 et PyQt4. Je souhaite utiliser un QMessageBox pour informer mon utilisateur qu'il n'a pas rempli une des cases demandée ou que la selection n'est pas valide. J'ai essayé pas mal de chose, mais je ne m'em sort pas avec le QMessageBox, je ne dois pas avoir bien assimilée le fonctionnement de ce module.

J'ai ce message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Traceback (most recent call last):
  File "C:\Users\AUGU/.qgis2/python/plugins\PostgisConnection\ui_importation.py", line 149, in validate_entries
    QMessageBox.information(self, self.trUtf8("Some required fields are missing, Please complete the form."))#Icon not callable
TypeError: arguments did not match any overloaded call:
  QMessageBox.information(QWidget, QString, QString, QMessageBox.StandardButtons buttons=QMessageBox.Ok, QMessageBox.StandardButton defaultButton=QMessageBox.NoButton): not enough arguments
  QMessageBox.information(QWidget, QString, QString, int, int button1=0, int button2=0): not enough arguments
  QMessageBox.information(QWidget, QString, QString, QString, QString button1Text=QString(), QString button2Text=QString(), int defaultButtonNumber=0, int escapeButtonNumber=-1): not enough arguments
Mon code est celui ci :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
 
import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
 
from PyQt4.QtGui import QMessageBox
from PyQt4.QtCore import SIGNAL
 
import psycopg2
import importation
import sriddialog
import ui_srid
 
try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s
 
try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)
 
class Ui_Importation(QtGui.QWidget):
    def setupUi(self, UiImportation):
        UiImportation.setObjectName(_fromUtf8("UiImportation"))
        UiImportation.resize(651, 251)
        self.gridLayoutWidget = QtGui.QWidget(UiImportation)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 10, 631, 231))
        self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget"))
        self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
        self.gridLayout.setMargin(0)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.label_sheet = QtGui.QLabel(self.gridLayoutWidget)
        self.label_sheet.setObjectName(_fromUtf8("label_sheet"))
        self.gridLayout.addWidget(self.label_sheet, 5, 0, 1, 1)
        self.r1 = QtGui.QRadioButton(self.gridLayoutWidget)
        self.r1.setObjectName(_fromUtf8("r1"))
        self.gridLayout.addWidget(self.r1, 5, 1, 1, 1)
        self.r2 = QtGui.QRadioButton(self.gridLayoutWidget)
        self.r2.setObjectName(_fromUtf8("r2"))
        self.gridLayout.addWidget(self.r2, 5, 2, 1, 1)
        self.label_titre = QtGui.QLabel(self.gridLayoutWidget)
        font = QtGui.QFont()
        font.setFamily(_fromUtf8("Calibri"))
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.label_titre.setFont(font)
        self.label_titre.setObjectName(_fromUtf8("label_titre"))
        self.gridLayout.addWidget(self.label_titre, 0, 0, 1, 1)
        self.pushButton_Browse = QtGui.QPushButton(self.gridLayoutWidget)
        self.pushButton_Browse.setObjectName(_fromUtf8("pushButton_Browse"))
        self.gridLayout.addWidget(self.pushButton_Browse, 2, 0, 1, 1)
        self.pushButton_srid = QtGui.QPushButton(self.gridLayoutWidget)
        self.pushButton_srid.setObjectName(_fromUtf8("pushButton_srid"))
        self.gridLayout.addWidget(self.pushButton_srid, 4, 0, 1, 1)
        self.pushButton_Import = QtGui.QPushButton(self.gridLayoutWidget)
        self.pushButton_Import.setObjectName(_fromUtf8("pushButton_Import"))
        self.gridLayout.addWidget(self.pushButton_Import, 7, 4, 1, 1)
        self.label_file = QtGui.QLabel(self.gridLayoutWidget)
        self.label_file.setObjectName(_fromUtf8("label_file"))
        self.gridLayout.addWidget(self.label_file, 1, 0, 1, 1)
        self.label_srid = QtGui.QLabel(self.gridLayoutWidget)
        self.label_srid.setObjectName(_fromUtf8("label_srid"))
        self.gridLayout.addWidget(self.label_srid, 3, 0, 1, 1)
        spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem, 0, 4, 1, 1)
        self.r3 = QtGui.QRadioButton(self.gridLayoutWidget)
        self.r3.setObjectName(_fromUtf8("r3"))
        self.gridLayout.addWidget(self.r3, 5, 3, 1, 1)
        self.lineEdit_pathfile = QtGui.QLineEdit(self.gridLayoutWidget)
        self.lineEdit_pathfile.setObjectName(_fromUtf8("lineEdit_pathfile"))
        self.gridLayout.addWidget(self.lineEdit_pathfile, 2, 1, 1, 4)
        self.lineEdit_srid = QtGui.QLineEdit(self.gridLayoutWidget)
        self.lineEdit_srid.setObjectName(_fromUtf8("lineEdit_srid"))
        self.gridLayout.addWidget(self.lineEdit_srid, 4, 1, 1, 4)
 
        self.retranslateUi(UiImportation)
        QtCore.QMetaObject.connectSlotsByName(UiImportation)
 
        #Connections
        self.pushButton_Browse.clicked.connect(self.browseDialog)
        self.pushButton_srid.clicked.connect(self.sridDialog)
        self.r1.toggled.connect(self.sheetDialog)
        self.r2.toggled.connect(self.sheetDialog)
        self.r3.toggled.connect(self.sheetDialog)
        self.pushButton_Import.clicked.connect(self.validate_entries)
        #QtCore.QObject.connect(self.pushButton_Import, QtCore.SIGNAL("clicked()"),UiImportation.close))
        #self.lineEdit_srid.textEdited.connect(self.srid)# Code directement entré par l'utilisateur
 
    def retranslateUi(self, UiImportation):
        UiImportation.setWindowTitle(_translate("UiImportation", "UiImportation", None))
        self.label_titre.setText(_translate("UiImportation", "Data Download", None))
        self.pushButton_Browse.setText(_translate("UiImportation", "Browse", None))
        self.pushButton_srid.setText(_translate("UiImportation", "SRID", None))
        self.pushButton_Import.setText(_translate("UiImportation", "Import", None))
        self.label_file.setText(_translate("UiImportation", "Chose a file to import :", None))
        self.label_srid.setText(_translate("UiImportation", "Chose a srid :", None))
        self.label_sheet.setText(_translate("UiImportation", "Select a sheet", None))
        self.r1.setText(_translate("UiImportation", "1", None))
        self.r2.setText(_translate("UiImportation", "2", None))
        self.r3.setText(_translate("UiImportation", "3", None))
 
    def browseDialog(self):
        """Selection du fichier et affichage du chemin d'accès"""
        self.pathfile = QtGui.QFileDialog.getOpenFileName(self, 'Open file', '/home')
        self.correctedpathfile= self.pathfile.replace('\\', '/') #Version du chemin pour les requêtes postgresql + xrl
        self.lineEdit_pathfile.setText(str(self.correctedpathfile))
        return self.correctedpathfile
 
 
    def sridDialog(self, UiImportation):
        """Ouvre la fentre de selection du code srid """
        self.dlg_srid = sriddialog.SridDialog()
        self.dlg_srid.show() 
        result_srid =self.dlg_srid.exec_()
        """Retrun le srid """
        self.uisrid = ui_srid.Ui_Srid()
        self.srid_selected =self.uisrid.returnSRID
        self.lineEdit_srid.setText(str(self.srid_selected))
        return self.srid_selected
        #return <bound method Ui_Srid.returnSRID of <PostgisConnection.ui_srid.Ui_Srid object at 0x000000000ECEB1E0>>
 
    def sheetDialog( self, UiImportation) :
        if self.r1.isChecked():
            self.index=1
        elif self.r2.isChecked():
            self.index=2
        elif self.r3.isChecked():
            self.index=3
        else:
            self.index=0
        return self.index
 
    def validate_entries (self, Ui_importation):
        if self.lineEdit_pathfile.text()=='':
            QMessageBox.information(self, self.trUtf8("Some required fields are missing, Please complete the form."))#ERREUR
 
    def importationDialog(self,UiImportation):
        """Lance le processus d'importation"""
       # self.path=self.browseDialog.correctedpathfile
       # self.srid =self.srid_selected.sridDialog
        #self.index=self.index.sheetDialog
        self.dlg_import= importation.Importation()
Merci d'avance !