Rechercher : dans
Par :

[C++/Qt] Créer son QLabel pour signal Clicked

Dernière réponse le 10 nov 2009 à 16:17:31 Vinc0016, le 10 nov 2009 à 15:56:54 
 Signaler ce message aux modérateurs

Bonjour,

Je suis en train de faire une petite application en C++ avec Qt et je cherche à avoir le signal Clicked sur un QLabel. Comme il n'existe pas, j'ai pensé à créer mon propre QLabel et y redéfinir la fonction mouseReleaseEvent. Malheureusement, je n'y arrive pas.

Voici le code de mon MyLabel.h :

#ifndef DEF_MYLABEL
#define DEF_MYLABEL

#include <QLabel>
class MyLabel: public QLabel
{
    Q_OBJECT

    public:
    MyLabel();
    MyLabel(QWidget *parent);

    signals:
    void clicked();

    protected:
    virtual void mouseReleaseEvent(QMouseEvent *);

};
#endif


Le code de mon MyLabel.cpp :

#include "MyLabel.h"

MyLabel::MyLabel(): QLabel()
{}

MyLabel::MyLabel(QWidget *parent): QLabel(QWidget *parent)
{}

void MyLabel::mouseReleaseEvent(QMouseEvent *event)
{
    if(event->button() == Qt::LeftButton)
    {
        emit clicked();
    }
}


Je ne vois pas ce que j'ai fait de mal et pourtant ça ne compile pas. J'ai 2 erreurs que voici :
MyLabel.cpp: In constructor ‘MyLabel::MyLabel(QWidget*)’:
MyLabel.cpp:6: error: expected primary-expression before ‘*’ token
MyLabel.cpp: In member function ‘virtual void MyLabel::mouseReleaseEvent(QMouseEvent*)’:
MyLabel.cpp:11: error: invalid use of incomplete type ‘struct QMouseEvent’
/usr/include/qt4/QtGui/qwidget.h:75: error: forward declaration of ‘struct QMouseEvent’


La première concerne le constructeur que j'ai repris et la seconde concerne l'utilisation de QMouseEvent.

Pouvez-vous m'éclairer ?

Merci
Configuration: Linux
Firefox 3.5.4

Meilleures réponses pour « [C++/Qt] Créer son QLabel pour signal Clicked » dans :
Créer son blog avec Blogger VoirSi vous avez envie, vous aussi, d’exprimer vos opinions ou tout simplement de relater au jour le jour les événements qui jalonnent votre vie, alors il est temps de créer votre premier blog. S'inscrire sur Blogger Rédiger son premier...
Créer un économiseur d'écran personnalisé avec ses photos VoirQui n'a jamais souhaité avoir un économiseur d'écran personnalisé en faisant un diaporama avec ses propres photos persos ? Windows propose une fonctionnalité permettant de créer son propre écran de veille en utilisant les photos situées dans le...
[Blogs] Choisir un hébergeur de blog et créer son blog VoirQu'est-ce qu'un blog ? Un « blog » (en français blogue, journal web ou carnet web) est un site internet personnel permettant à un internaute de publier facilement et simplement des informations en ligne sous forme de journal. Le terme « blog » est...

1

 Boz129, le 10 nov 2009 à 16:17:31
  • +1

#include <QMouseEvent>

Pour le 2ème constructeur :

MyQLabel::MyQLabel ( QWidget *parent, Qt::WindowFlags f): QLabel()
{}

Ca devrait mieux marcher !

Répondre à Boz129