[C / GTK] "Dessiner" sur une image

"Dessiner" sur une image [C / GTK] - C - Programmation

Marsh Posté le 12-01-2007 à 23:51:11    

Bonjour ! (bonsoir ? nuit ?)
 
Je réalise une application où mon espace de travail est séparé en deux :
 
A gauche deux champs pour entrer des coordonnées et un bouton pour actualiser.
A droite une image d'une zone sur laquelle j'aimerais pouvoir placer une croix (ou tout autre visuel) en fonction des coordonnées fournies dans les zones de textes.
 
Etant grand débutant en GTK (j'utilise par ailleurs Glade), je cherche activement comment faire : difficile ai-je l'impression, étant donné que la superposition de widgets ne semble pas trop faire partie des habitudes de GTK.
 
Quelqu'un aurait-il s'il vous plaît une solution ?
(et au risque d'être exigeant, pas trop pointue si possible :D - ouais j'avoue, j'abuse.)
 
Merci d'avance,  
 
Sylvain.

Reply

Marsh Posté le 12-01-2007 à 23:51:11   

Reply

Marsh Posté le 12-01-2007 à 23:52:43    

cairo

Reply

Marsh Posté le 13-01-2007 à 00:41:10    

Hum.

Reply

Marsh Posté le 13-01-2007 à 21:44:04    

Up, besoin d'aide :D.

Reply

Marsh Posté le 14-01-2007 à 13:57:34    

Reply

Marsh Posté le 14-01-2007 à 16:39:02    

Alors, je suis à fond dedans en ce moment... donc je vais faire de mon mieux..
 
Premierement --> supperposition de Widget ? il me semble que ce la n'a rien à voir ... tu divise ta fenetre avec un vbox, et tu met ton drawingarea à gauche et à drotie tu re divise pour mettre tes boites de saisie...
 
Derriere ton bouton actualiser, tu récupere ton drawingarea (le gtk_object_get_data(...) est le plus propre).
Tu récupere aussi ton graphic context (ou tu en fait un) et pour dessiner, tu va devoir utiliser la couche GDK.
 

Code :
  1. //drawable
  2. GdkDrawable *drawable = widget->window ;
  3. //Graphic context
  4. GdkGC *gc = widget->style->fg_gc[GTK_WIDGET_STATE (widget)];
  5. //widget étant ton drawingarea


 
ensuite tu utilise les gdk_draw_line
 

Code :
  1. gdk_draw_line(drawable, gc, max_x - 340, max_y - 12, max_x - 340, max_y);


 
 
Bien sur ne pas oublier... #include <gdk/gdk.h>
 
Note : pour dessiner du texte : couche pango (et cairo)... mais ca c'est une autre histoire...
 
alors, satisfait ?  :p


Message édité par Ange_blond le 14-01-2007 à 16:41:05
Reply

Marsh Posté le 14-01-2007 à 19:26:35    

BEURK ! utilise cairo tout le temps. Gdk c'est caca

Reply

Marsh Posté le 15-01-2007 à 20:14:55    

Alors c'est sympa de m'avoir répondu, mais en fait, soit ya un truc qui m'échappe, soit jme suis mal exprimé, mais je vois pas bien en quoi ce que tu me dis m'aide à ajouter un visuel sur une image - c'est d'ailleurs pour ça que je voulais parler de "superposer" des widgets".
 
Cairo est une bibliothèque graphique j'imagine donc.
 
Je vais aller voir de ce côté.

Reply

Marsh Posté le 16-01-2007 à 13:49:16    

Ben tu peux charger des images sur ton drawingarea... mais si c'est autre chose j'ai pas compris alors...
 
faudrai un exemple dans ce cas....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed