Problème avec Q_Object et les SLOTS
Bonjour tout le monde !
Voila j'aimerai faire un menu principal de trois boutons. Le bouton quitter ne pose pas de problème est marche sans soucis le problème étant les autres.
En effet des que je veux que le bouton enclenche une fonction la compilation ne se lance pas.
Je suis sous Qt Creator et il me retourne : test.exe s'est terminé avec le code -1073741819
Par contre si je retire "Q_Object" et "slots :" il s'exécute sans soucis mais bien sur les boutons ne font rien du tout.
voila la classe qui contient le "Q_Object" (Pour info la fonction qui dois s'enclencher quand on active le bouton n'est qu'un test pour voir sur le bouton fonctionne ou non ^^) :
menu.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
class menu : QObject
{
Q_OBJECT
private:
QGridLayout *gridLayout ;
QPushButton *aide ;
QPushButton *jouer ;
QPushButton *quitter ;
public:
menu(QWidget * parent) ;
public slots :
void affichermenu() ;
} ; |
menu.cpp
Code:
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
|
#include "menu.h"
menu::menu(QWidget * parent)
{
gridLayout = new QGridLayout;
aide = new QPushButton(tr("Aide"), parent);
aide->setFont(QFont("Onyx", 18, QFont::Bold));
jouer = new QPushButton(tr("Jouer"), parent);
jouer->setFont(QFont("Onyx", 18, QFont::Bold));
parent->connect(jouer, SIGNAL(clicked()), this, SLOT(affichermenu()));
quitter = new QPushButton(tr("Quitter"), parent);
quitter->setFont(QFont("Onyx", 18, QFont::Bold));
parent->connect(quitter, SIGNAL(clicked()), qApp, SLOT(quit()));
quitter->setStyleSheet("QPushButton{background-image:url(fondbuton.png);}");
jouer->setStyleSheet("QPushButton{background-image:url(fondbuton.png);}");
aide->setStyleSheet("QPushButton{background-image:url(fondbuton.png);}");
quitter->setMaximumSize(70,40);
aide->setMaximumSize(70,40);
jouer->setMaximumSize(70,40);
gridLayout->addWidget(jouer, 1, 1);
gridLayout->addWidget(aide, 2, 1);
gridLayout->addWidget(quitter, 3, 1);
parent->setLayout(gridLayout);
}
void menu::affichermenu()
{
quitter->~QWidget();
} |
Pour info c'est mon premier dev en C++ ^^.