Bonjour,

j'utilise le code ci-dessous pour afficher une interface graphique avec des boutons faisant appel à différentes fonctions, voici le code :

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
 
 
import sys,os
from Tkinter import *
import tkFileDialog
from PyQt4 import QtCore, QtGui
from Carte_defaut import *
from Traitements_image import *
from exemple_3D import *
from fileopen import *
 
h = 300
l = 575
 
class Frame(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.resize(l,h)
        self.setFont(QtGui.QFont("Verdana"))
        self.setWindowTitle("Traitement données thermographie IR")
        try:
            self.setWindowIcon(QtGui.Icon("icon.jpg"))
        except:pass
 
        fen = QtGui.QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move((fen.width()-size.width())/2, (fen.height()-size.height())/2)
 
 
        #Création de la barre de statut avec les informations voulues.
        self.statusBar().showMessage("Identification de la taille des défauts")
 
        menubar = self.menuBar() ## Création d'une barre de menu
        file_ = menubar.addMenu("Fichier") ## Ajout d'un menu.
 
 
        #Ajout de la fenêtre Ã* onglets
        self.tabWidget = QtGui.QTabWidget(self)
        self.tabWidget.setGeometry(0,20,l,h-40)
 
        #Création de deux QWidget qui permettront ensuite de créer les pages du QTabWidget
        self.pnl_1 = QtGui.QWidget(self.tabWidget)
 
        #À noter que le parent du QWidget peut aussi bien être le QTabWidget 
    #ou le QMainWindows. Personnellement, je préfère la première solution afin 
    #de garder une hiérarchie cohérente dans le code.
        self.pnl_2 = QtGui.QWidget(self)
        self.pnl_3 = QtGui.QWidget(self)
        self.pnl_4 = QtGui.QWidget(self)
 
        #Ajout des QWidgets en temps que Tab du QTabWidget.
    #Le premier Tab portera le nom Entrée et le deuxième le nom Lecture.
        self.tabWidget.addTab(self.pnl_1, "Courbe d'erreurs 2D")
        self.tabWidget.addTab(self.pnl_2, "Courbe d'erreurs 3D")
        self.tabWidget.addTab(self.pnl_3, "Traitement images")
 
        #Modification de la couleur de fond des QWidget.
        self.pnl_1.setPalette(QtGui.QPalette(QtGui.QColor("white")))
        self.pnl_1.setAutoFillBackground(True)
        self.pnl_2.setPalette(QtGui.QPalette(QtGui.QColor("white")))
        self.pnl_2.setAutoFillBackground(True)
        self.pnl_3.setPalette(QtGui.QPalette(QtGui.QColor("white")))
        self.pnl_3.setAutoFillBackground(True)
        self.pnl_4.setPalette(QtGui.QPalette(QtGui.QColor("white")))
        self.pnl_4.setAutoFillBackground(True)
 
 
 
        self.gene = QtGui.QPushButton("Carte temperature 2D (couleur)", self.pnl_1)
        self.gene.move(110, 50)
        self.gene.clicked.connect(Carte_erreur_C)
 
        self.gene = QtGui.QPushButton("Carte temperature 2D (niveau de gris)", self.pnl_1)
        self.gene.move(110, 150)
        self.gene.clicked.connect(Carte_erreur_NB)
 
 
        self.gene = QtGui.QPushButton("Carte temperature 3D (points)", self.pnl_2)
        self.gene.move(110, 50)
        self.gene.clicked.connect(Carte_erreur_3D_P)
 
        self.gene = QtGui.QPushButton("Carte temperature 3D (contour)", self.pnl_2)
        self.gene.move(110, 100)
        self.gene.clicked.connect(Carte_erreur_3D_contour)
 
        self.gene = QtGui.QPushButton("Carte temperature 3D (surface)", self.pnl_2)
        self.gene.move(110, 150)
        self.gene.clicked.connect(exemple3D_2)
 
        self.gene = QtGui.QPushButton("Seuillage", self.pnl_3)
        self.gene.move(110, 50)
        self.gene.clicked.connect(Seuillage)
 
        self.gene = QtGui.QPushButton("Coupe sur X", self.pnl_3)
        self.gene.move(110, 100)
        self.gene.clicked.connect(Coupe_sur_x)
 
        self.gene = QtGui.QPushButton("Coupe sur Y", self.pnl_3)
        self.gene.move(110, 150)
        self.gene.clicked.connect(Coupe_sur_y)
 
 
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    frame = Frame()
    frame.show()
    sys.exit(app.exec_())
Ce code marche très bien mais uniquement pour une utilisation c'est à dire que, quand je lance le programme, mon interface graphique s'affiche, je clique ensuite sur un bouton qui déclenche une fonction mais après ceci, si je clique directement sur un autre bouton ça bugue !!

Est ce que quelqu'un aurait une solution pour que je puisse utiliser plusieurs fonctions sans avoir à relancer à chaque fois le programme de l'interface ??

Merci d'avance.

Cordialement.