|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
Bonsoir ,
mon probléme c'est lorsque je vx cliquer sur ma fenetre avec la souri j'aimerai afficher deux image diférente . Donc pour sa j'ai crée Code :
Code :
g_signal_connect(G_OBJECT(rectangle), "button_press_event", G_CALLBACK(gestion_souris), fenetre); j'espere que vous pouvez m'aider |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
Tu appelles la fonction gestion_souris(); et la fonction que tu nous montres s'appelle get_souris();. Est-ce normal?
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
Bonjour tout d'abord je vous remercier pour votre réponse
c'est gestion_souris(); je l'ai appeller ds la fonction void dessin Code :
quelle argument me manque sachant ma fonction je la déclare comme sa , Code :
void gestion_souris(GtkWidget *widget,GdkEventButton *event, gpointer mode) |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
Le prototype de la fonction gestion_souris(); demande 3 arguments et tu n'en donne qu'un. Forcément le compilateur n'est pas content.
Le plus simple est de faire : gestion_souris(rectangle, NULL, NULL);. Maintenant si tu as besoin d'un de ces 2 derniers arguments ca va poser quelques problèmes.
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
j'ai déja utiliser les 3 argument comme vous vennez le signaler mais j'ai erreur de segmentation ??
Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
C'est normal, si on peut dire. Le deuxième argument est nécessaire puisqu'il est utilisé dans la fonction gestion_souris();. On ne peut donc pas transmettre NULL.
Pour reprendre en amont il y a une erreur de conception. La fonction gestion_souris(); doit être appelée par l'appel d'un signal, et non directement par une fonction de ta composition. Pourquoi passes-tu par la fonction dessine();?
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
je l'ai déja appelée par l'appel du signale
Code :
g_signal_connect(G_OBJECT(rectangle), "button-press-event", G_CALLBACK(gestion_souris),(gpointer) data); |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
J'ai du mal à voir ce que le code peut donner. S'il n'est pas trop long peux-tu le mettre en ligne?
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
oui il est long est ce que je peux vous l'envoie en message priver ??
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
Ce sont les fêtes de fin d'année. Alors je vais faire une exception à la règle. Oui tu peux les envoyer.
Une petite remarque. Le tutoiement est de rigueur ici. Alors n'hésites pas
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
Une première réponse rapide.
Tu déclaresUn GtkDrawingArea ne dispose pas du signal "button-press-event". Il faut activer explicitement l'écoute du clic de la souris dessus. Pour ca tu dois utiliser la fonction gtk_widget_set_events(GtkWidget *widget, gint events);. Dans ton cas ca donne Code :
gtk_widget_set_events (rectangle, GDK_BUTTON_PRESS_MASK); Code :
gboolean user_function (GtkWidget *widget, GdkEventButton *event, gpointer user_data) Code :
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
aprés la lecteur du code pour la callback avant je declare comme sa
Code :
g_signal_connect (G_OBJECT (fenetre), "destroy", G_CALLBACK (gtk_main_quit), NULL); Code :
gboolean user_function (GtkWidget *widget, GdkEventButton *event, gpointer user_data) POUR LA callback est ce que c'est comme sa Code :
gboolean gestion_souris(GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
Voila ton code un peu revu:
Code :
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
sa na pas marcher sa ce compile mais toujours erreur de segmentation
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
Chez moi ca compile sans problème et se lance aussi. Hormis le fait que je possède pas les images j'obtiens une fenêtre avec un menu et une partie graphique noire.
As-tu copier/coller le code complet que je t'ai donné pour essayer?
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Inscription : décembre 2009 Messages : 22 ![]() |
Bonjour ,
maintenant j'ai réussi a le lancer mais lorsque je clique sur le rectangle il ne me donne pas les image et au bout de 4 clique sa bloque .. |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 275 ![]() |
Peux-tu mettre dans ton post les images que tu utilises? Comme ca je pourrais mieux me rendre compte du résultat rechercher.
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com