Bonsoir,

Ce semestre j'ai un cours de programmation orientée objet en C++ ; la note finale se portera sur un projet à remettre. Comme je souhaite m'avancer en «posant les fondations» de mon programme, j'ai choisi de commencer à programmer une fenêtre basique qui recevra plus tard le dit projet.

Toutefois Qt me résiste et un MessageBox refuse de s'afficher. Ce MessageBox correspond à la fameuse fonction «À propos de» du menu «Aide». Cependant j'ai beau aller dans ce menu et cliquer sur cette action, je n'obtiens rien.

Voici le code de mon programme
Code main.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#include <QApplication>
#include "CustomMainWindow.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    CustomMainWindow mW;
 
    mW.show();
 
    return a.exec();
}

Code CustomMainWindow.h : 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
#ifndef CUSTOMMAINWINDOW_H
#define CUSTOMMAINWINDOW_H
 
#include <QWidget>
#include <QMainWindow>
    #include <QMenuBar>
        #include <QMenu>
        #include <QAction>
    #include <QDockWidget>
 
#define MINIMUM_HEIGHT 480
#define MINIMUM_WIDTH  640
 
class CustomMainWindow : public QMainWindow
{
    public:
        CustomMainWindow();
        ~CustomMainWindow();
 
    public slots:
        void openAboutMessageBox();
 
    private:
        QWidget *windowContent;
        QDockWidget *dock;
            QWidget *dockContent;
        QMenu *menuFile;
            QAction *actionQuit;
        QMenu *menuSettings;
            QAction *actionShowDock;
        QMenu *menuHelp;
            QAction *actionAbout;
 
};
 
#endif // CUSTOMMAINWINDOW_H

Code CustomMainWindow.cpp : 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
#include "CustomMainWindow.h"
#include <QApplication>
#include <QPalette>
#include <QMessageBox>
 
CustomMainWindow::CustomMainWindow() : windowContent(new QWidget),
                                       dock(new QDockWidget("Playlists", this)),
                                           dockContent(new QWidget),
                                       menuFile(menuBar()->addMenu("&File")),
                                           actionQuit(menuFile->addAction(tr("&Quit"))),
                                       menuSettings(menuBar()->addMenu("&Settings")),
                                           actionShowDock(dock->toggleViewAction()),
                                       menuHelp(menuBar()->addMenu("&?")),
                                           actionAbout(menuHelp->addAction(tr("&About Aud!")))
{
    setMinimumSize(MINIMUM_WIDTH, MINIMUM_HEIGHT);
 
    setPalette(QPalette(Qt::white));
    setAutoFillBackground(true);
 
    setCentralWidget(windowContent);
    windowContent->setPalette(QPalette(Qt::lightGray));
    windowContent->setAutoFillBackground(true);
    windowContent->setMinimumWidth((int)(3*MINIMUM_WIDTH/4));
 
    addDockWidget(Qt::LeftDockWidgetArea, dock);
    dock->setPalette(QPalette(Qt::lightGray));
    dock->setAutoFillBackground(true);
    dock->setVisible(false);
    dock->setMinimumWidth((int)(MINIMUM_WIDTH/6));
    dock->setMaximumWidth((int)(MINIMUM_WIDTH/4));
    dock->setFeatures(QDockWidget::DockWidgetClosable);
//    dock->setWidget(dockContent);
 
    actionQuit->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
    QObject::connect(actionQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
 
    actionShowDock->setText("&Show Playlists");
    menuSettings->addAction(actionShowDock);
 
    actionAbout->setShortcut(QKeySequence::HelpContents);
    QObject::connect(actionAbout, SIGNAL(triggered()), this, SLOT(openAboutMessageBox()));
}
 
CustomMainWindow::~CustomMainWindow()
{
    delete windowContent;
    delete dockContent;
    delete dock;
}
 
void CustomMainWindow::openAboutMessageBox()
{
    QMessageBox::information(this, "About Aud!", "Texte explicatif à la con.");
}

Merci d'avance pour votre aide.