Bonjour à tous,

Je m'essaie à l'utilisation de Qt, après avoir fini le tuto, je me fixe des objectifs à atteindre. Et je me retrouve bloqué en utilisant une classe avec un double héritage.

L'objectif est de dessiner un cercle dans un autre cercle, et de le déplacer en cliquant à l'intérieur du second cercle. L'erreur est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
erreur : invalid conversion from 'fenetreEvnt*' to 'SOCKET {aka unsigned int}' [-fpermissive]
     connect(evnt, SIGNAL(mouseRightClick(const QPointF&)), rond, SLOT(position(const QPointF&)));
où fenetreEvnt est la classe qui pose problème, dans le main

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
21
22
23
24
25
26
27
28
29
//main.ccp
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>
 
#include <QApplication>
#include "fenprincipale.h"
#include "fenetreevnt.h"
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    QGraphicsScene *scene = new QGraphicsScene;
 
    fenetreEvnt *rond = new fenetreEvnt(0,0,30,30);
        scene->addItem(rond);
 
    fenetreEvnt *evnt = new fenetreEvnt(-200,-200,400,400);
        scene->addItem(evnt);
 
    connect(evnt, SIGNAL(mouseRightClick(const QPointF&)), rond, SLOT(position(const QPointF&)));
 
 
    QGraphicsView *fenetre = new  QGraphicsView(scene);
 
    fenetre->show();
    return app.exec();
}


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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//fichier .h
 
#ifndef FENETREEVNT_H
#define FENETREEVNT_H
 
#include <QGraphicsItem>
#include <QGraphicsSceneMouseEvent>
 
class fenetreEvnt : public QGraphicsEllipseItem, public QObject
{
    Q_OBJECT
 
public:
    fenetreEvnt(int, int, int, int);
    void mousePressEvent(QGraphicsSceneMouseEvent * e);
signals:
    void mouseRightClick(const QPointF&);
public slots:
    void position(const QPointF&);
};
 
#endif // FENETREEVNT_H
 
 
//fichier .ccp
#include "fenetreevnt.h"
 
fenetreEvnt::fenetreEvnt(int x1, int y1, int x2, int y2):QGraphicsEllipseItem(x1,y1,x2,y2)
{
 
}
 
 
void fenetreEvnt::mousePressEvent(QGraphicsSceneMouseEvent * e)
{
    const QPointF& point(e->buttonDownScenePos(Qt::RightButton));
    emit mouseRightClick(point);
}
 
void fenetreEvnt::position(const QPointF& point)
{
    setPos(point);
}
J'ai beaucoup cherché et rien ne fonctionne. Merci d'avance de vos réponses.