Bonjour à tous!
Je suis débutant en QT4 et je continue mon apprentissage pas à pas.
Je suis tombé sur un nouvel os : je cherche à afficher une croix lors du clic de la souris sur une fenêtre. J'ai bien lu le tutorial du zéro concernant l'utilisation des signals/slots et j'ai cherché à l'adapter pour parvenir à mes fins. Voici le code:
main.cpp
FenPrincipale.h#include <QApplication>
#include "FenPrincipale.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
FenPrincipale fenetre;
fenetre.show();
return app.exec();
}
FenPrincipale.cpp#ifndef HEADER_FENPRINCIPALE
#define HEADER_FENPRINCIPALE
#include <QtGui>
#include <QLabel>
#include <QMouseEvent>
class FenPrincipale : public QMainWindow
{
Q_OBJECT
public:
FenPrincipale();
public slots:
void croix(int x, int y);
signals:
void monSignal(int x, int y);
void mousePressEvent(QMouseEvent* event)
{
int x = event->x();
int y = event->y();
emit monSignal(x,y);
}
};
#endif
Le problème, c'est que le compilateur me dit que la ligne#include "FenPrincipale.h"
FenPrincipale::FenPrincipale()
{
QMenu *menuFichier = menuBar()->addMenu("&Fichier");
QAction *actionQuitter = new QAction("&Quitter", this);
menuFichier->addAction(actionQuitter);
QObject::connect(this, SIGNAL(monSignal(int x, int y)), this, SLOT(croix(int x, int y)));
}
void FenPrincipale::croix(int x, int y)
{
QPainter painter(this);
painter.setPen(Qt::black);
painter.drawLine(x-1, y, x+1, y);
painter.drawLine(x, y-1, x, y+1);
}
de FenPrincipale.h n'est pas une déclaration de signal ("Not a signal declaration"). Voyez-vous pourquoi?emit monSignal(x,y);
Merci d'avance.
Partager