Hello !
Dans le cadre de mes études, je travaille actuellement sur une étude pratique. Je suis sensé écrire un programme Qt permettant de dessiner des automates simples, afin de les intégrer à un autre projet sur lequel d'autres amis travaillent. En voici une capture d'écran (les icônes sont choisies à la volée pour l'instant):
Le problème est que j'ai programmé une fonctionnalité qui permet de retirer une flèche de l'interface, en cliquant dessus. Et là, une fois que j'ai cliqué, j'obtiens une erreur que je ne comprends pas. Et le débogueur intégré à Qt Creator m'indique les messages suivants :
L'inférieur a stoppé car il a reçu un signal du système d'exploitation.
Nom du signal : SIGSEGV
Signification du signal : Segmentation fault
can't find linker symbol for virtual table for `State' value
Voici le code : y-a-t-il quelque chose qui est mal dans le code ?
Le problème survient à la ligne 10.
Merci.
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 void GraphicsView::mouseReleaseEvent(QMouseEvent *event) { if(pressedItem != NULL) { } bool removeArrow = false; if(arrowOnPainting!=NULL) { // if an arrow is being drawn if(hoveredItem==NULL) removeArrow = true; else { State *hoveredState = dynamic_cast<State*>(hoveredItem); // voici la ligne qui foire. if(hoveredState==NULL) removeArrow = true; } } if(removeArrow) { m_scene->removeItem(arrowOnPainting); delete arrowOnPainting; arrowOnPainting = NULL; } pressedItem = NULL; }
Partager