Bonjour à tous.
J'ai dans mon projet besoin de récupérer la position de la souris. J'ai réussi à récupérer et à bricoler la fonction suivante :
Le problème est le suivant. Il m'affiche ca dans la console à la compilation :
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 void PositionSourisEcran( GtkWidget *widget, GdkEventMotion *event) { gint x1, y1; gint x2, y2; int coord[MAX_LIGNE][MAX_COLONNE]; /* Position dans la fenêtre */ if (event->is_hint) gdk_window_get_pointer (event->window, &x1, &y1, NULL); else { x1 = event->x; y1 = event->y; } /* Position dans l'écran */ if (event->is_hint) gdk_window_get_pointer (gdk_screen_get_root_window(gdk_screen_get_default()),&x2, &y2, NULL); else { x2 = event->x_root; y2 = event->y_root; } /*RECUPERATION DES COORDONNEES ICI*/ coord[0][0]=x1; coord[0][1]=y1; coord[0][2]=x2; coord[0][3]=y2; printf("%d \t%d\n %d\t %d\n",coord[0][0],coord[0][1],coord[0][2],coord[0][3]); }
J'ai fait des recherches et apparemment, on peut utiliser ce genre de truc que si un ou plusieurs bouton sont enfoncés. Ca m'a paru super bizarre mais apparemment ca a l'air d'être vrai.
Code : Sélectionner tout - Visualiser dans une fenêtre à part error: 'struct _GdkEventButton' has no member named 'is_hint'
Ca marchait avant puisque je chargeais une image sur clic d'un bouton et apres je pouvais récupérer la position.
Par contre maintenant, je n'ai absolument plus de bouton pour charger puisque j'arrive à mettre à jour l'image sur clic de l'image elle-même (que j'ai mise dans une Eventbox).
J'ai pensé rajouter un bouton factice invisible que j'activerais tout le temps histoire de pouvoir récupérer la position de mon curseur quand je veux mais le soucis c'est que j'arrive pas à faire ca et je me demande meme si c'est faisable.
Le cas échéant, quelqu'un aurait une idée?
PS : précisioin, dans mon main je connecte mon signal de la manière suivante :
pEBox est mon Eventbox et la ChargementImage est une fonction qui fait plusieurs choses et dans laquelle j'ai inclu quasi textuellement la fonction PositionSouris
Code : Sélectionner tout - Visualiser dans une fenêtre à part g_signal_connect(G_OBJECT(pEBox), "button_press_event", G_CALLBACK(ChargementImage), ¶mEBox);
Partager