Bonjour, j'écris une petite application de calcul avec interface GUI à l'aide de Pyqt4

j'ai dessiné mon interface par qtdesigner je l'ai transformé en *.py

j'importe ce dernier dans mon programme principal.

le problème maintenant que mon application démarre mais les signaux ne marchent pas : par exemple suivant ou apropos ...

ça doit être dans (programmme principal) :

-def __init__(self, parent=None):

-if __name__ == "__main__":



merci de m'aide

voici mon *.py de l'interface graphique


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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'Siphon5.ui'
#
# Created: Thu Feb 12 07:51:07 2009
#      by: PyQt4 UI code generator 4.4.3
#
# WARNING! All changes made in this file will be lost!
 
from PyQt4 import QtCore, QtGui
 
class Ui_SIPHON(object):
    def setupUi(self, SIPHON):
        SIPHON.setObjectName("SIPHON")
        SIPHON.resize(593, 550)
        self.Tab_Reservoirs = QtGui.QWidget()
        self.Tab_Reservoirs.setObjectName("Tab_Reservoirs")
        self.Fig_deux_reservoirs = QtGui.QLabel(self.Tab_Reservoirs)
        self.Fig_deux_reservoirs.setGeometry(QtCore.QRect(10, 100, 564, 242))
        self.Fig_deux_reservoirs.setPixmap(QtGui.QPixmap("Fig_Reseau_2reser.png"))
        self.Fig_deux_reservoirs.setObjectName("Fig_deux_reservoirs")
        self.logo = QtGui.QLabel(self.Tab_Reservoirs)
        self.logo.setGeometry(QtCore.QRect(10, 70, 571, 341))
        self.logo.setPixmap(QtGui.QPixmap("Fig_Reseau_deux_reservoirs.png"))
        self.logo.setObjectName("logo")
        self.layoutWidget = QtGui.QWidget(self.Tab_Reservoirs)
        self.layoutWidget.setGeometry(QtCore.QRect(20, 475, 551, 41))
        self.layoutWidget.setObjectName("layoutWidget")
        self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton_Apropos = QtGui.QPushButton(self.layoutWidget)
        self.pushButton_Apropos.setObjectName("pushButton_Apropos")
        self.horizontalLayout.addWidget(self.pushButton_Apropos)
        spacerItem = QtGui.QSpacerItem(248, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.pushButton_Quitter = QtGui.QPushButton(self.layoutWidget)
        self.pushButton_Quitter.setObjectName("pushButton_Quitter")
        self.horizontalLayout.addWidget(self.pushButton_Quitter)
        spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem1)
        self.pushButton_Suivant = QtGui.QPushButton(self.layoutWidget)
        self.pushButton_Suivant.setObjectName("pushButton_Suivant")
        self.horizontalLayout.addWidget(self.pushButton_Suivant)
        self.lineEdit_Nbre_Tubes = QtGui.QLineEdit(self.Tab_Reservoirs)
        self.lineEdit_Nbre_Tubes.setGeometry(QtCore.QRect(240, 400, 71, 21))
        self.lineEdit_Nbre_Tubes.setObjectName("lineEdit_Nbre_Tubes")
        self.label_Nbre_Tubes = QtGui.QLabel(self.Tab_Reservoirs)
        self.label_Nbre_Tubes.setGeometry(QtCore.QRect(240, 370, 71, 33))
        self.label_Nbre_Tubes.setAlignment(QtCore.Qt.AlignCenter)
        self.label_Nbre_Tubes.setObjectName("label_Nbre_Tubes")
        self.layoutWidget1 = QtGui.QWidget(self.Tab_Reservoirs)
        self.layoutWidget1.setGeometry(QtCore.QRect(10, 37, 561, 61))
        self.layoutWidget1.setObjectName("layoutWidget1")
        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.layoutWidget1)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.verticalLayout_6 = QtGui.QVBoxLayout()
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.radioButton = QtGui.QRadioButton(self.layoutWidget1)
        self.radioButton.setObjectName("radioButton")
        self.verticalLayout_6.addWidget(self.radioButton)
        self.radioButton_2 = QtGui.QRadioButton(self.layoutWidget1)
        self.radioButton_2.setObjectName("radioButton_2")
        self.verticalLayout_6.addWidget(self.radioButton_2)
        self.horizontalLayout_3.addLayout(self.verticalLayout_6)
        spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem2)
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_P1 = QtGui.QLabel(self.layoutWidget1)
        self.label_P1.setAlignment(QtCore.Qt.AlignCenter)
        self.label_P1.setObjectName("label_P1")
        self.verticalLayout.addWidget(self.label_P1)
        self.lineEdit_P1 = QtGui.QLineEdit(self.layoutWidget1)
        self.lineEdit_P1.setObjectName("lineEdit_P1")
        self.verticalLayout.addWidget(self.lineEdit_P1)
        self.horizontalLayout_2.addLayout(self.verticalLayout)
        spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem3)
        self.verticalLayout_2 = QtGui.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label_P2 = QtGui.QLabel(self.layoutWidget1)
        self.label_P2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_P2.setObjectName("label_P2")
        self.verticalLayout_2.addWidget(self.label_P2)
        self.lineEdit_P2 = QtGui.QLineEdit(self.layoutWidget1)
        self.lineEdit_P2.setObjectName("lineEdit_P2")
        self.verticalLayout_2.addWidget(self.lineEdit_P2)
        self.horizontalLayout_2.addLayout(self.verticalLayout_2)
        spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem4)
        self.verticalLayout_4 = QtGui.QVBoxLayout()
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.label_Z1 = QtGui.QLabel(self.layoutWidget1)
        self.label_Z1.setAlignment(QtCore.Qt.AlignCenter)
        self.label_Z1.setObjectName("label_Z1")
        self.verticalLayout_4.addWidget(self.label_Z1)
        self.lineEdit_Z1 = QtGui.QLineEdit(self.layoutWidget1)
        self.lineEdit_Z1.setObjectName("lineEdit_Z1")
        self.verticalLayout_4.addWidget(self.lineEdit_Z1)
        self.horizontalLayout_2.addLayout(self.verticalLayout_4)
        spacerItem5 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem5)
        self.verticalLayout_5 = QtGui.QVBoxLayout()
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.label_Z2 = QtGui.QLabel(self.layoutWidget1)
        self.label_Z2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_Z2.setObjectName("label_Z2")
        self.verticalLayout_5.addWidget(self.label_Z2)
        self.lineEdit_Z2 = QtGui.QLineEdit(self.layoutWidget1)
        self.lineEdit_Z2.setObjectName("lineEdit_Z2")
        self.verticalLayout_5.addWidget(self.lineEdit_Z2)
        self.horizontalLayout_2.addLayout(self.verticalLayout_5)
        spacerItem6 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem6)
        self.verticalLayout_3 = QtGui.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label_Z3 = QtGui.QLabel(self.layoutWidget1)
        self.label_Z3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_Z3.setObjectName("label_Z3")
        self.verticalLayout_3.addWidget(self.label_Z3)
        self.lineEdit_Z3 = QtGui.QLineEdit(self.layoutWidget1)
        self.lineEdit_Z3.setObjectName("lineEdit_Z3")
        self.verticalLayout_3.addWidget(self.lineEdit_Z3)
        self.horizontalLayout_2.addLayout(self.verticalLayout_3)
        self.horizontalLayout_3.addLayout(self.horizontalLayout_2)
        SIPHON.addTab(self.Tab_Reservoirs, "")
        self.Tab_Tubes = QtGui.QWidget()
        self.Tab_Tubes.setObjectName("Tab_Tubes")
        self.tableWidget_tubes = QtGui.QTableWidget(self.Tab_Tubes)
        self.tableWidget_tubes.setGeometry(QtCore.QRect(10, 10, 561, 501))
        self.tableWidget_tubes.setObjectName("tableWidget_tubes")
        self.tableWidget_tubes.setColumnCount(5)
        self.tableWidget_tubes.setRowCount(0)
        item = QtGui.QTableWidgetItem()
        self.tableWidget_tubes.setHorizontalHeaderItem(0, item)
        item = QtGui.QTableWidgetItem()
        self.tableWidget_tubes.setHorizontalHeaderItem(1, item)
        item = QtGui.QTableWidgetItem()
        self.tableWidget_tubes.setHorizontalHeaderItem(2, item)
        item = QtGui.QTableWidgetItem()
        self.tableWidget_tubes.setHorizontalHeaderItem(3, item)
        item = QtGui.QTableWidgetItem()
        self.tableWidget_tubes.setHorizontalHeaderItem(4, item)
        SIPHON.addTab(self.Tab_Tubes, "")
        self.Tab_Singularites_Pompes = QtGui.QWidget()
        self.Tab_Singularites_Pompes.setObjectName("Tab_Singularites_Pompes")
        self.tableWidget_Singularites_pompes = QtGui.QTableWidget(self.Tab_Singularites_Pompes)
        self.tableWidget_Singularites_pompes.setGeometry(QtCore.QRect(170, 20, 256, 411))
        self.tableWidget_Singularites_pompes.setObjectName("tableWidget_Singularites_pompes")
        self.tableWidget_Singularites_pompes.setColumnCount(2)
        self.tableWidget_Singularites_pompes.setRowCount(0)
        item = QtGui.QTableWidgetItem()
        self.tableWidget_Singularites_pompes.setHorizontalHeaderItem(0, item)
        item = QtGui.QTableWidgetItem()
        self.tableWidget_Singularites_pompes.setHorizontalHeaderItem(1, item)
        self.pushButton_Suivant_2 = QtGui.QPushButton(self.Tab_Singularites_Pompes)
        self.pushButton_Suivant_2.setGeometry(QtCore.QRect(480, 480, 75, 24))
        self.pushButton_Suivant_2.setObjectName("pushButton_Suivant_2")
        SIPHON.addTab(self.Tab_Singularites_Pompes, "")
        self.Tab_Graphe = QtGui.QWidget()
        self.Tab_Graphe.setObjectName("Tab_Graphe")
        self.qwtPlot_Graphe = QwtPlot(self.Tab_Graphe)
        self.qwtPlot_Graphe.setGeometry(QtCore.QRect(0, 20, 561, 501))
        self.qwtPlot_Graphe.setObjectName("qwtPlot_Graphe")
        SIPHON.addTab(self.Tab_Graphe, "")
        self.Tab_Coup_Belier = QtGui.QWidget()
        self.Tab_Coup_Belier.setObjectName("Tab_Coup_Belier")
        SIPHON.addTab(self.Tab_Coup_Belier, "")
 
        self.retranslateUi(SIPHON)
        SIPHON.setCurrentIndex(0)
        QtCore.QObject.connect(self.pushButton_Quitter, QtCore.SIGNAL("clicked()"), SIPHON.close)
        QtCore.QObject.connect(self.pushButton_Suivant, QtCore.SIGNAL("clicked()"), SIPHON.show)
        QtCore.QMetaObject.connectSlotsByName(SIPHON)
 
    def retranslateUi(self, SIPHON):
        SIPHON.setWindowTitle(QtGui.QApplication.translate("SIPHON", "SIPHON", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_Apropos.setText(QtGui.QApplication.translate("SIPHON", "A propos", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_Quitter.setText(QtGui.QApplication.translate("SIPHON", "Quitter", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_Suivant.setText(QtGui.QApplication.translate("SIPHON", "Suivant", None, QtGui.QApplication.UnicodeUTF8))
        self.label_Nbre_Tubes.setText(QtGui.QApplication.translate("SIPHON", "Nbre de Tubes", None, QtGui.QApplication.UnicodeUTF8))
        self.radioButton.setText(QtGui.QApplication.translate("SIPHON", "Deux reservoirs", None, QtGui.QApplication.UnicodeUTF8))
        self.radioButton_2.setText(QtGui.QApplication.translate("SIPHON", "Un seul reservoirs", None, QtGui.QApplication.UnicodeUTF8))
        self.label_P1.setText(QtGui.QApplication.translate("SIPHON", "P1", None, QtGui.QApplication.UnicodeUTF8))
        self.label_P2.setText(QtGui.QApplication.translate("SIPHON", "P2", None, QtGui.QApplication.UnicodeUTF8))
        self.label_Z1.setText(QtGui.QApplication.translate("SIPHON", "Z1", None, QtGui.QApplication.UnicodeUTF8))
        self.label_Z2.setText(QtGui.QApplication.translate("SIPHON", "Z2", None, QtGui.QApplication.UnicodeUTF8))
        self.label_Z3.setText(QtGui.QApplication.translate("SIPHON", "Z3", None, QtGui.QApplication.UnicodeUTF8))
        SIPHON.setTabText(SIPHON.indexOf(self.Tab_Reservoirs), QtGui.QApplication.translate("SIPHON", "Reservoirs", None, QtGui.QApplication.UnicodeUTF8))
        self.tableWidget_tubes.horizontalHeaderItem(0).setText(QtGui.QApplication.translate("SIPHON", "L", None, QtGui.QApplication.UnicodeUTF8))
        self.tableWidget_tubes.horizontalHeaderItem(1).setText(QtGui.QApplication.translate("SIPHON", "D", None, QtGui.QApplication.UnicodeUTF8))
        self.tableWidget_tubes.horizontalHeaderItem(2).setText(QtGui.QApplication.translate("SIPHON", "Zdébut", None, QtGui.QApplication.UnicodeUTF8))
        self.tableWidget_tubes.horizontalHeaderItem(3).setText(QtGui.QApplication.translate("SIPHON", "Lambda", None, QtGui.QApplication.UnicodeUTF8))
        self.tableWidget_tubes.horizontalHeaderItem(4).setText(QtGui.QApplication.translate("SIPHON", "Nbre Singularités", None, QtGui.QApplication.UnicodeUTF8))
        SIPHON.setTabText(SIPHON.indexOf(self.Tab_Tubes), QtGui.QApplication.translate("SIPHON", "Tubes", None, QtGui.QApplication.UnicodeUTF8))
        self.tableWidget_Singularites_pompes.horizontalHeaderItem(0).setText(QtGui.QApplication.translate("SIPHON", "K", None, QtGui.QApplication.UnicodeUTF8))
        self.tableWidget_Singularites_pompes.horizontalHeaderItem(1).setText(QtGui.QApplication.translate("SIPHON", "Position en %", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_Suivant_2.setText(QtGui.QApplication.translate("SIPHON", "Suivant", None, QtGui.QApplication.UnicodeUTF8))
        SIPHON.setTabText(SIPHON.indexOf(self.Tab_Singularites_Pompes), QtGui.QApplication.translate("SIPHON", "Singularités et pompes", None, QtGui.QApplication.UnicodeUTF8))
        SIPHON.setTabText(SIPHON.indexOf(self.Tab_Graphe), QtGui.QApplication.translate("SIPHON", "Graphe", None, QtGui.QApplication.UnicodeUTF8))
        SIPHON.setTabText(SIPHON.indexOf(self.Tab_Coup_Belier), QtGui.QApplication.translate("SIPHON", "Coup_Belier", None, QtGui.QApplication.UnicodeUTF8))
 
from PyQt4.Qwt5 import QwtPlot
 
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    SIPHON = QtGui.QTabWidget()
    ui = Ui_SIPHON()
    ui.setupUi(SIPHON)
    SIPHON.show()
    sys.exit(app.exec_())


et mon programme principal *.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
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
# -*- coding: utf-8 -*-
 
 
from __future__ import division
from numpy.core import *
import numpy as np  #pour resize avec les zeros ...
import math
import sys,os
 
from PyQt4 import QtGui, QtCore
from ui_Siphon import Ui_SIPHON
 
progname = u"SIPHON (%s)" %os.path.basename(sys.argv[0])
progversion = "0.1"
 
class Appli_HAF(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Appli_HAF, self).__init__(parent)
        self.setupUi(self)
        self.connect(self.pushButton_Calculer, SIGNAL("clicked()"), 
                     self.calculate)
        QtCore.QObject.connect(self.pushButton_Suivant, QtCore.SIGNAL("clicked()"), self.Entree_Tubes)
        QtCore.QObject.connect(self.pushButton_Calculer, QtCore.SIGNAL("clicked()"), self.Apropos)
        QtCore.QObject.connect(self.pushButton_Apropos, QtCore.SIGNAL("clicked()"),self.Apropos)
 
 
 
    def Entree_Tubes(self):
        if self.lineEdit_Nbre_Tubes.text()=="" :
            QMessageBox.critical(None, "Erreure", u"Veuillez remplir les donnees avant svp." )
        else:
            Nbre_Tubes=float(self.lineEdit_Nbre_Tubes.text())
            self.tableWidget.setRowCount(Nbre_Tubes)
            self.tableWidget.setColumnCount(3)
            self.tableWidget.setHorizontalHeaderLabels(['L (m)','D',u'Nbre de Singularité']) 
            calcul_reseau.setCurrentIndex(1) 
 
 
    def Haf_Calculer(self):
        L=[]
        for i in range(int(self.lineEdit_Nbre_Tubes.text())):
            a=self.tableWidget.item(i,0)
            b=a.data(0).toString()
            L.append(float(b))
        D=[]
        for i in range(int(self.lineEdit_Nbre_Tubes.text())):
            a=self.tableWidget.item(i,1)
            b=a.data(0).toString()
            D.append(float(b))
        NbreSingul=[]
        for i in range(int(self.lineEdit_Nbre_Tubes.text())):
            a=self.tableWidget.item(i,2)
            b=a.data(0).toString()
            NbreSingul.append(float(b))            
 
        print L
        print D
        print NbreSingul
 
    def Tracer_Graphe(self):
        print L
 
 
    def Apropos(self):
        QtGui.QMessageBox.about(None, "A propos %s" % progname,
                                u"""%(prog)s version %(version)s
 
            Copyright \N{COPYRIGHT SIGN} 2009 Mohamed HAFIANE, 11-02-2009 PFE Univ. Saida
 
         - Programme SIPHON (Organigrammes 1, 2 et 3) : Calcul le débit théorique entre deux
           réservoirs (ou un seul réservoir) reliés par des tubes en série ;
           vérifie la cavitation au point le plus élevé de ces tubes ;
           détermine les pressions et vérifie la cavitation à une série de points
           le long des tubes ; permet aussi de tracer les différentes courbes des 
           différentes charges (ligne piézométrique, ligne de charge hydraulique,...)
           le longe du profile des tubes.
           
         - Rem : Les entrées des pressions doivent être en absolu (i.e. ne pas les données
           par rapport à la pression atmosphérique) ; Les sorties des pressions sont 
           en absolu aussi.
           
         - Le système d'unité est le Métrique.
         
         - La programaion est faite sous Python 2.5 http::\\<a href="http://www.python.org" target="_blank">www.python.org</a> avec Qt 4.4.3 """
            % {"prog": progname, "version": progversion})
 
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    SIPHON = QtGui.QTabWidget()
    ui = Ui_SIPHON()
    ui.setupUi(SIPHON)
    SIPHON.show()
    sys.exit(app.exec_())