Bonjour,

Je lis actuellement le livre "Rapid Gui Programming with Python and Qt" de Mark Summerfield dans le but de programmer des applications pédagogiques.
Au chapitre 6 on aborde les "Main Windows". Ce très long chapitre détaille la construction d' une application complète mais aborde des détails que je veux ignorer pour l'instant.
Mon premier but est juste de construire une fenêtre principale possédant une barre de menu.
Je ne comprends pas pourquoi je n'obtiens rien (aucune erreur mais aussi aucune fenêtre ) avec le code minimaliste suivant:

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
 
# /usr/bin/python3
#-*- coding: utf-8 -*-
 
import os
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
 
class MainWindow(QMainWindow):
 
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
 
        self.width = 600
        self.height = 600
        self.setSize(self.width, self.height)
 
        #étiquette qui contiendra l'image , créée comme**** 
        #composant central de la fenêtre.
        self.imageLabel = QLabel()
        self.imageLabel.setMinimumSize(200, 200)
        self.imageLabel.setAlignment(Qt.AlignCenter)
        self.setCentralWidget(self.imageLabel)
 
 
        #les actions****************************************
 
        fileNewAction = QAction("&New", self)
        fileNewAction.setShortCut("Ctrl+N")
        fileNewAction.triggered.connect(self.fileNewAct)
 
        fileQuitAction = QAction("&Quit", self)
        fileQuitAction.setShortCut("Ctrl+Q")
        fileQuitAction.triggered.connect(self.fileQuitAct)
 
        fileSaveAction = QAction("&Save", self)
        fileSaveAction.setShortCut("Ctrl+S")
        fileSaveAction.triggered.connect(self.fileSaveAct)
 
        zoomAction = QAction("&Zoom",self)
        zoomAction.setShortCut("Ctrl+Z")
        zoomAction.triggered.connect(self.zoomAct)
 
        helpAction = QAction("&Help",self)
        helpAction.setShortCut("Ctrl+H")
        helpAction.triggered.connect(self.helpAct)
 
 
        #créer les menus de la barre de menu*****************
        menubar = self.menuBar()
        editMenu = menubar.addMenu("&Edit")
        changeMenu = menubar.addMenu("&Change") 
        helpMenu = menubar.addMenu("&Help")
 
        editMenu.addAction(fileNewAction)
        editMenu.addSeparator()
        editMenu.addAction(fileSaveAction)
        editMenu.addSeparator()
        editMenu.addAction(fileQuitAction)
        editMenu.addSeparator()           
 
        changeMenu.addAction(zoomAction)
        changeMenu.addSeparator()
 
        helpMenu.addAction(helpAction)
        helpMenu.addSeparator()
 
        self.setWindowTitle("Image Changer")
 
    #***************finconstucteur**************************************
 
    #slots
    def fileNewAct(self):
        return
 
    def fileSaveAct(self):
        return
 
    def fileQuitAct(self):
        return
 
    def zoomAct(self):
        return
 
    def helpAct(self):
        return
 
if __name__ == "_main__":
 
    app = QApplication(sys.argv)
 
    fenetreprincipale = MainWindow()
    fenetreprincipale.show()
    sys.exit(app.exec_())
Je travaille sous Ubuntu, Python3 et Qt5.
Merci pour toute aide (à un débutant).