Bonjour,

J'essaye de comprendre comment faire que ui->Qlabel (qtdesigner), prenne en compte le signal on_label_clicked() :

J'ai trouvé cette exemple :

Mainwindow.h :
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
#ifndef MYQTAPP_H
#define MYQTAPP_H 
#include "ui_MainWindow.h"
class myQtApp : public QMainWindow, private Ui::MainWindow
{
    Q_OBJECT 
public:
    myQtApp(QWidget *parent = 0);
public slots:
    void doSomething();
};
class MyLabel : public QLabel
{
	Q_OBJECT
protected:
  void mousePressEvent(QMouseEvent * e);
signals:
  void clicked(const QPoint & pos);
};
#endif
mainwindow.cpp :

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
#include <QtGui>
#include "mainwindow.h" 
myQtApp::myQtApp(QWidget *parent)
{
    setupUi(this); // this sets up GUI
    connect( MyLabel, SIGNAL( clicked() ), this, SLOT( doSomething() ) );
}
void MyLabel::mousePressEvent(QMouseEvent * e)
{
  QLabel::mousePressEvent(e);
  emit clicked(e->pos());
}
void myQtApp::doSomething()
{
	qDebug("Hello");
}
J'ai le message d'erreur suivant :
Démarrage de I:\Programmation\C++\uilabelclicked\TEST17\debug\TEST17.exe...Object::connect: No such signal QLabel::MyLabel::clicked() in mainwindow.cpp:11
Pourquoi il ne trouve pas le signal ?

Cordialement