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 :
où fenetreEvnt est la classe qui pose problème, dans le main
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&)));
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(); }
J'ai beaucoup cherché et rien ne fonctionne. Merci d'avance de vos réponses.
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); }
Partager