Bonjour les Amis ...

Entrant dans le vif du sujet, je voudrais utiliser QStackedWidget pour l'organisation de mes pages, j'ai crée un menu avec Qt Disigner dont ci-dessous 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
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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
 
 
# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'Config_Ui2.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_DialogConfig(object):
    def setupUi(self, DialogConfig):
        DialogConfig.setObjectName("DialogConfig")
        DialogConfig.resize(720, 459)
        DialogConfig.setFocusPolicy(QtCore.Qt.TabFocus)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("Icons/settings.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        DialogConfig.setWindowIcon(icon)
        self.Stackpages = QtWidgets.QStackedWidget(DialogConfig)
        self.Stackpages.setGeometry(QtCore.QRect(150, 10, 551, 401))
        self.Stackpages.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.Stackpages.setObjectName("Stackpages")
        self.pageEcole = QtWidgets.QWidget()
        self.pageEcole.setObjectName("pageEcole")
        self.gblisteecoles_2 = QtWidgets.QGroupBox(self.pageEcole)
        self.gblisteecoles_2.setGeometry(QtCore.QRect(10, 10, 501, 111))
        self.gblisteecoles_2.setStyleSheet("")
        self.gblisteecoles_2.setObjectName("gblisteecoles_2")
        self.listViewEcolesConfig = QtWidgets.QListView(self.gblisteecoles_2)
        self.listViewEcolesConfig.setGeometry(QtCore.QRect(10, 20, 481, 81))
        self.listViewEcolesConfig.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.listViewEcolesConfig.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.listViewEcolesConfig.setObjectName("listViewEcolesConfig")
        self.gbagent_5 = QtWidgets.QGroupBox(self.pageEcole)
        self.gbagent_5.setGeometry(QtCore.QRect(10, 130, 501, 51))
        self.gbagent_5.setStyleSheet("")
        self.gbagent_5.setObjectName("gbagent_5")
        self.label_23 = QtWidgets.QLabel(self.gbagent_5)
        self.label_23.setGeometry(QtCore.QRect(10, 20, 41, 16))
        self.label_23.setObjectName("label_23")
        self.lenomecoleConfig = QtWidgets.QLineEdit(self.gbagent_5)
        self.lenomecoleConfig.setGeometry(QtCore.QRect(60, 20, 311, 20))
        self.lenomecoleConfig.setMaxLength(50)
        self.lenomecoleConfig.setObjectName("lenomecoleConfig")
        self.label_27 = QtWidgets.QLabel(self.gbagent_5)
        self.label_27.setGeometry(QtCore.QRect(380, 20, 61, 16))
        self.label_27.setObjectName("label_27")
        self.leabrecoleConfig = QtWidgets.QLineEdit(self.gbagent_5)
        self.leabrecoleConfig.setGeometry(QtCore.QRect(450, 20, 31, 20))
        self.leabrecoleConfig.setMaxLength(3)
        self.leabrecoleConfig.setObjectName("leabrecoleConfig")
        self.layoutWidget_6 = QtWidgets.QWidget(self.pageEcole)
        self.layoutWidget_6.setGeometry(QtCore.QRect(10, 190, 501, 26))
        self.layoutWidget_6.setObjectName("layoutWidget_6")
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout(self.layoutWidget_6)
        self.horizontalLayout_8.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.btnnouvelecole = QtWidgets.QPushButton(self.layoutWidget_6)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("../Formation/Icons/plus.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btnnouvelecole.setIcon(icon1)
        self.btnnouvelecole.setObjectName("btnnouvelecole")
        self.horizontalLayout_8.addWidget(self.btnnouvelecole)
        self.btnmodifecole = QtWidgets.QPushButton(self.layoutWidget_6)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("../Formation/Icons/pencil.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btnmodifecole.setIcon(icon2)
        self.btnmodifecole.setObjectName("btnmodifecole")
        self.horizontalLayout_8.addWidget(self.btnmodifecole)
        self.btnsuppecole = QtWidgets.QPushButton(self.layoutWidget_6)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap("../Formation/Icons/trash.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btnsuppecole.setIcon(icon3)
        self.btnsuppecole.setObjectName("btnsuppecole")
        self.horizontalLayout_8.addWidget(self.btnsuppecole)
        self.btnvalidecole = QtWidgets.QPushButton(self.layoutWidget_6)
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap("../Formation/Icons/check.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btnvalidecole.setIcon(icon4)
        self.btnvalidecole.setObjectName("btnvalidecole")
        self.horizontalLayout_8.addWidget(self.btnvalidecole)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_8.addItem(spacerItem)
        self.line = QtWidgets.QFrame(self.pageEcole)
        self.line.setGeometry(QtCore.QRect(-17, 0, 20, 411))
        self.line.setFrameShape(QtWidgets.QFrame.VLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.Stackpages.addWidget(self.pageEcole)
        self.pageThemes = QtWidgets.QWidget()
        self.pageThemes.setObjectName("pageThemes")
        self.gbthemes_2 = QtWidgets.QGroupBox(self.pageThemes)
        self.gbthemes_2.setGeometry(QtCore.QRect(10, 10, 531, 131))
        self.gbthemes_2.setStyleSheet("")
        self.gbthemes_2.setObjectName("gbthemes_2")
        self.listViewThemesConfig = QtWidgets.QListView(self.gbthemes_2)
        self.listViewThemesConfig.setGeometry(QtCore.QRect(10, 20, 511, 101))
        self.listViewThemesConfig.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.listViewThemesConfig.setFrameShadow(QtWidgets.QFrame.Plain)
        self.listViewThemesConfig.setAlternatingRowColors(True)
        self.listViewThemesConfig.setObjectName("listViewThemesConfig")
        self.gbagent_6 = QtWidgets.QGroupBox(self.pageThemes)
        self.gbagent_6.setGeometry(QtCore.QRect(10, 150, 531, 111))
        self.gbagent_6.setStyleSheet("")
        self.gbagent_6.setObjectName("gbagent_6")
        self.comboBoxDomaineConfig = QtWidgets.QComboBox(self.gbagent_6)
        self.comboBoxDomaineConfig.setGeometry(QtCore.QRect(80, 20, 111, 20))
        self.comboBoxDomaineConfig.setObjectName("comboBoxDomaineConfig")
        self.label_13 = QtWidgets.QLabel(self.gbagent_6)
        self.label_13.setGeometry(QtCore.QRect(11, 20, 61, 16))
        self.label_13.setObjectName("label_13")
        self.comboBoxActiviteConfig = QtWidgets.QComboBox(self.gbagent_6)
        self.comboBoxActiviteConfig.setGeometry(QtCore.QRect(80, 50, 221, 20))
        self.comboBoxActiviteConfig.setMinimumSize(QtCore.QSize(101, 0))
        self.comboBoxActiviteConfig.setObjectName("comboBoxActiviteConfig")
        self.label_14 = QtWidgets.QLabel(self.gbagent_6)
        self.label_14.setGeometry(QtCore.QRect(11, 50, 61, 16))
        self.label_14.setObjectName("label_14")
        self.lethemeConfig = QtWidgets.QLineEdit(self.gbagent_6)
        self.lethemeConfig.setGeometry(QtCore.QRect(80, 80, 431, 20))
        self.lethemeConfig.setMaxLength(50)
        self.lethemeConfig.setObjectName("lethemeConfig")
        self.label_28 = QtWidgets.QLabel(self.gbagent_6)
        self.label_28.setGeometry(QtCore.QRect(10, 80, 61, 16))
        self.label_28.setObjectName("label_28")
        self.layoutWidget_7 = QtWidgets.QWidget(self.pageThemes)
        self.layoutWidget_7.setGeometry(QtCore.QRect(10, 270, 531, 26))
        self.layoutWidget_7.setObjectName("layoutWidget_7")
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout(self.layoutWidget_7)
        self.horizontalLayout_9.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        self.btnnouvetheme = QtWidgets.QPushButton(self.layoutWidget_7)
        self.btnnouvetheme.setIcon(icon1)
        self.btnnouvetheme.setObjectName("btnnouvetheme")
        self.horizontalLayout_9.addWidget(self.btnnouvetheme)
        self.btnsupptheme = QtWidgets.QPushButton(self.layoutWidget_7)
        self.btnsupptheme.setIcon(icon3)
        self.btnsupptheme.setObjectName("btnsupptheme")
        self.horizontalLayout_9.addWidget(self.btnsupptheme)
        self.btnmodiftheme = QtWidgets.QPushButton(self.layoutWidget_7)
        self.btnmodiftheme.setIcon(icon2)
        self.btnmodiftheme.setObjectName("btnmodiftheme")
        self.horizontalLayout_9.addWidget(self.btnmodiftheme)
        self.btnvalidtheme = QtWidgets.QPushButton(self.layoutWidget_7)
        self.btnvalidtheme.setIcon(icon4)
        self.btnvalidtheme.setObjectName("btnvalidtheme")
        self.horizontalLayout_9.addWidget(self.btnvalidtheme)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_9.addItem(spacerItem1)
        self.Stackpages.addWidget(self.pageThemes)
        self.pageTypes = QtWidgets.QWidget()
        self.pageTypes.setObjectName("pageTypes")
        self.gbtypes_2 = QtWidgets.QGroupBox(self.pageTypes)
        self.gbtypes_2.setGeometry(QtCore.QRect(10, 10, 511, 121))
        self.gbtypes_2.setStyleSheet("")
        self.gbtypes_2.setObjectName("gbtypes_2")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.gbtypes_2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.listViewTypesConfig = QtWidgets.QListView(self.gbtypes_2)
        self.listViewTypesConfig.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.listViewTypesConfig.setObjectName("listViewTypesConfig")
        self.horizontalLayout.addWidget(self.listViewTypesConfig)
        self.gbagent_7 = QtWidgets.QGroupBox(self.pageTypes)
        self.gbagent_7.setGeometry(QtCore.QRect(10, 140, 511, 61))
        self.gbagent_7.setStyleSheet("")
        self.gbagent_7.setObjectName("gbagent_7")
        self.label_30 = QtWidgets.QLabel(self.gbagent_7)
        self.label_30.setGeometry(QtCore.QRect(400, 20, 61, 16))
        self.label_30.setObjectName("label_30")
        self.leabrtypeConfig = QtWidgets.QLineEdit(self.gbagent_7)
        self.leabrtypeConfig.setGeometry(QtCore.QRect(470, 20, 31, 20))
        self.leabrtypeConfig.setMaxLength(3)
        self.leabrtypeConfig.setObjectName("leabrtypeConfig")
        self.label_29 = QtWidgets.QLabel(self.gbagent_7)
        self.label_29.setGeometry(QtCore.QRect(10, 20, 61, 16))
        self.label_29.setObjectName("label_29")
        self.letypeConfig = QtWidgets.QLineEdit(self.gbagent_7)
        self.letypeConfig.setGeometry(QtCore.QRect(83, 20, 311, 20))
        self.letypeConfig.setMaxLength(50)
        self.letypeConfig.setObjectName("letypeConfig")
        self.layoutWidget_8 = QtWidgets.QWidget(self.pageTypes)
        self.layoutWidget_8.setGeometry(QtCore.QRect(10, 210, 511, 26))
        self.layoutWidget_8.setObjectName("layoutWidget_8")
        self.horizontalLayout_10 = QtWidgets.QHBoxLayout(self.layoutWidget_8)
        self.horizontalLayout_10.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_10.setObjectName("horizontalLayout_10")
        self.btnnouvetype = QtWidgets.QPushButton(self.layoutWidget_8)
        self.btnnouvetype.setIcon(icon1)
        self.btnnouvetype.setObjectName("btnnouvetype")
        self.horizontalLayout_10.addWidget(self.btnnouvetype)
        self.btnmodiftype = QtWidgets.QPushButton(self.layoutWidget_8)
        self.btnmodiftype.setIcon(icon2)
        self.btnmodiftype.setObjectName("btnmodiftype")
        self.horizontalLayout_10.addWidget(self.btnmodiftype)
        self.btnsupptype = QtWidgets.QPushButton(self.layoutWidget_8)
        self.btnsupptype.setIcon(icon3)
        self.btnsupptype.setObjectName("btnsupptype")
        self.horizontalLayout_10.addWidget(self.btnsupptype)
        self.btnvalidtype = QtWidgets.QPushButton(self.layoutWidget_8)
        self.btnvalidtype.setIcon(icon4)
        self.btnvalidtype.setObjectName("btnvalidtype")
        self.horizontalLayout_10.addWidget(self.btnvalidtype)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_10.addItem(spacerItem2)
        self.Stackpages.addWidget(self.pageTypes)
        self.pushButtonFermer = QtWidgets.QPushButton(DialogConfig)
        self.pushButtonFermer.setGeometry(QtCore.QRect(580, 420, 111, 31))
        self.pushButtonFermer.setObjectName("pushButtonFermer")
        self.ListeWidgets = QtWidgets.QListWidget(DialogConfig)
        self.ListeWidgets.setGeometry(QtCore.QRect(10, 10, 131, 401))
        self.ListeWidgets.setStyleSheet("background-color: rgb(240, 240, 240);")
        self.ListeWidgets.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.ListeWidgets.setObjectName("ListeWidgets")
        self.layoutWidget = QtWidgets.QWidget(DialogConfig)
        self.layoutWidget.setGeometry(QtCore.QRect(20, 20, 109, 383))
        self.layoutWidget.setObjectName("layoutWidget")
        self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setObjectName("gridLayout")
        self.BoutonEcole = QtWidgets.QToolButton(self.layoutWidget)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap("Icons/classe.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.BoutonEcole.setIcon(icon5)
        self.BoutonEcole.setIconSize(QtCore.QSize(100, 100))
        self.BoutonEcole.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.BoutonEcole.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.BoutonEcole.setAutoRaise(False)
        self.BoutonEcole.setArrowType(QtCore.Qt.NoArrow)
        self.BoutonEcole.setObjectName("BoutonEcole")
        self.gridLayout.addWidget(self.BoutonEcole, 0, 0, 1, 1)
        self.BoutonThemes = QtWidgets.QToolButton(self.layoutWidget)
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap("Icons/themes.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.BoutonThemes.setIcon(icon6)
        self.BoutonThemes.setIconSize(QtCore.QSize(100, 100))
        self.BoutonThemes.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.BoutonThemes.setObjectName("BoutonThemes")
        self.gridLayout.addWidget(self.BoutonThemes, 1, 0, 1, 1)
        self.BoutonTypes = QtWidgets.QToolButton(self.layoutWidget)
        icon7 = QtGui.QIcon()
        icon7.addPixmap(QtGui.QPixmap("Icons/formation.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.BoutonTypes.setIcon(icon7)
        self.BoutonTypes.setIconSize(QtCore.QSize(100, 100))
        self.BoutonTypes.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.BoutonTypes.setObjectName("BoutonTypes")
        self.gridLayout.addWidget(self.BoutonTypes, 2, 0, 1, 1)
 
        self.retranslateUi(DialogConfig)
        self.Stackpages.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(DialogConfig)
 
    def retranslateUi(self, DialogConfig):
        _translate = QtCore.QCoreApplication.translate
        DialogConfig.setWindowTitle(_translate("DialogConfig", "Configuration"))
        self.gblisteecoles_2.setTitle(_translate("DialogConfig", "Liste des Ecoles"))
        self.gbagent_5.setTitle(_translate("DialogConfig", "Ecole"))
        self.label_23.setText(_translate("DialogConfig", "Intitulé"))
        self.label_27.setText(_translate("DialogConfig", "Abréviation"))
        self.btnnouvelecole.setText(_translate("DialogConfig", "Nouveau"))
        self.btnmodifecole.setText(_translate("DialogConfig", "Modification"))
        self.btnsuppecole.setText(_translate("DialogConfig", "Suppression"))
        self.btnvalidecole.setText(_translate("DialogConfig", "Validation"))
        self.gbthemes_2.setTitle(_translate("DialogConfig", "Liste des thèmes"))
        self.gbagent_6.setTitle(_translate("DialogConfig", "Thème"))
        self.label_13.setText(_translate("DialogConfig", "Domaine"))
        self.label_14.setText(_translate("DialogConfig", "Activité"))
        self.label_28.setText(_translate("DialogConfig", "Titre"))
        self.btnnouvetheme.setText(_translate("DialogConfig", "Nouveau"))
        self.btnsupptheme.setText(_translate("DialogConfig", "Suppression"))
        self.btnmodiftheme.setText(_translate("DialogConfig", "Modification"))
        self.btnvalidtheme.setText(_translate("DialogConfig", "Validation"))
        self.gbtypes_2.setTitle(_translate("DialogConfig", "Liste des types de formations"))
        self.gbagent_7.setTitle(_translate("DialogConfig", "Type "))
        self.label_30.setText(_translate("DialogConfig", "Abréviation"))
        self.label_29.setText(_translate("DialogConfig", "Intitulé"))
        self.btnnouvetype.setText(_translate("DialogConfig", "Nouveau"))
        self.btnmodiftype.setText(_translate("DialogConfig", "Modification"))
        self.btnsupptype.setText(_translate("DialogConfig", "Suppression"))
        self.btnvalidtype.setText(_translate("DialogConfig", "Validation"))
        self.pushButtonFermer.setText(_translate("DialogConfig", "Fermer"))
        self.BoutonEcole.setText(_translate("DialogConfig", "Ecole"))
        self.BoutonThemes.setText(_translate("DialogConfig", "Thèmes "))
        self.BoutonTypes.setText(_translate("DialogConfig", "Type formation"))

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
 
 
#!/usr/bin/python3
# -*- coding: utf-8 -*-
 
import sys
import os
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtSql import (QSqlTableModel,QSqlDatabase, QSqlQuery,
                            QSqlRelationalTableModel,
                            QSqlRelation,QSqlRelationalDelegate)
 
from PyQt5.QtWidgets import (QApplication, QTableView, QDataWidgetMapper, 
                             QComboBox, QDialog, QWidget, QStackedWidget,
                             QListWidget, QListWidgetItem, QFormLayout,
                             QLabel, QMainWindow, QMessageBox, QAbstractItemView)
 
from Config_ui2 import Ui_DialogConfig
 
CONFIG_DATABASE_PATH = "./Data"
CONFIG_DATABASE_NAME = "Formation.db"
 
##------------------------Connexion à la Base de Données----------------------##
def ouvrecnx(self):
    basedonnee = os.path.join(CONFIG_DATABASE_PATH,
                              CONFIG_DATABASE_NAME)
    db = QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName(basedonnee)
    if not db.open():
        QMessageBox.critical(None, "Problème d'accès à*la base de données",
                                 "Impossible d'établir une connexion à la base de données.\n"
                                 "Cliquer Cancel pour sortir.",
                                 QMessageBox.Cancel)
        return False
##------------------------Déconnexion à la Base de Données--------------------##
def fermecnx(db):
    if db!=None:
        db.close()
##----------------------------------------------------------------------------##
class Configure(QDialog):
    def __init__(self, parent=None):
        super(Configure, self).__init__(parent)
        self.ui = Ui_DialogConfig()
        self.ui.setupUi(self)
        ouvrecnx(self)
 
        self.ui.BoutonEcole = QListWidgetItem(self.ui.ListeWidgets)
        self.ui.BoutonThemes = QListWidgetItem(self.ui.ListeWidgets)
        self.ui.BoutonTypes = QListWidgetItem(self.ui.ListeWidgets)
 
        self.ui.pushButtonFermer.clicked.connect(self.Fermer)
 
        self.ui.pageEcole  = pageEcole(self)
        self.ui.pageThemes = pageThemes()
        self.ui.pageTypes  = pageTypes()
 
        self.ui.Stackpages.addWidget(pageEcole())
        self.ui.Stackpages.addWidget(pageThemes())
        self.ui.Stackpages.addWidget(pageTypes())
        self.ui.ListeWidgets.setCurrentRow(0)
 
    def ChangePage(self, current, previous):
        if not current:
            current = previous
            self.ui.Stackpages.setCurrentIndex(self.ui.ListeWidgets.row(current))
            self.ui.ListeWidgets.currentItemChanged.connect(self.changePage)
 
    def Fermer(self):
        reponse = QtWidgets.QMessageBox.question(self,
                    "Configuration et mise à jour ",
                    "Vous voulez sortir ?",
                    buttons = QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No | QtWidgets.QMessageBox.Cancel,
                    defaultButton = QtWidgets.QMessageBox.NoButton)
 
        if reponse == QtWidgets.QMessageBox.Yes:
            self.close()
 
##----------------------------------------------------------------------------##
class pageEcole(QWidget):
    def __init__(self, parent=None):
        super(pageEcole, self).__init__(parent)
        self.ui = Ui_DialogConfig()
        self.ui.setupUi(self)
        .....
 
##----------------------------------------------------------------------------##
class pageThemes(QWidget):
    def __init__(self, parent=None):
        super(pageThemes, self).__init__(parent)
        self.ui = Ui_DialogConfig()
        self.ui.setupUi(self)
        ....
 
##----------------------------------------------------------------------------##
class pageTypes(QWidget):
    def __init__(self, parent=None):
        super(pageTypes, self).__init__(parent)
        self.ui = Ui_DialogConfig()
        self.ui.setupUi(self)
        ....
##----------------------------------------------------------------------------##
 
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    locale = QtCore.QLocale.system().name()
    translator = QtCore.QTranslator()
    reptrad = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)
    translator.load("qtbase_" + locale, reptrad) # qtbase_fr.qm
    app.installTranslator(translator)
    config = Configure()
    config.show()
    sys.exit(app.exec_())
##----------------------------------------------------------------------------##
Je me suis inspiré de la démo de PyQt5 pour le code. Lorque la fenetre s'ouvre elle affiche trois icones, si je clique sur icone rien ne change, c'est toujours la première icone qui est affichée.
Je demande votre aide.