Question

Je suis en train d'afficher une image que je charge d'un pixbuf (à partir des données en mémoire) et l'image est mise à jour chaque fois que (le pixbuf est en train de changer avec le temps). Ma question est que, depuis la fenêtre ne contient que l'image (qui est mise à jour), ai-je besoin d'un drawable gtk ou une zone de dessin pour cela? ou puis-je afficher simplement l'image dans la fenêtre? Une autre option serait d'utiliser caire. Quelqu'un peut-il s'il vous plaît suggérer une bonne façon de le faire?

Était-ce utile?

La solution

Charger le fichier dans un pixbuf, il y a un constructeur new_from_file ou quelque chose pour cela.

Oui, créer un DrawingArea et le coller dans une boîte ou quelque part quelque chose.

Ensuite, obtenir la fenêtre parent DrawingArea (il y aura une méthode comme get_window ou quelque chose pour cela). Ce sera votre Drawable.

Créer un GC (contexte graphique) -. Vous ne avez pas besoin de définir des valeurs particulières dans ce

Connectez le DrawingArea à un événement exposer. Dans l'événement d'exposition, il a appeler la méthode draw_pixbuf sur la Drawable avec votre pixbuf avec le GC vous avez créé.

Appelez cette même méthode draw_pixbuf chaque fois que vous mettez à jour le pixbuf en quelque sorte.

Vous pouvez également envisager d'utiliser un pixmap à la place, si vous n'êtes pas chargeant à partir d'un fichier et l'intention de tirer sur elle. Un pixmap lui-même est un Drawable, de sorte que vous pouvez directement dessiner des rectangles et des choses là-dessus. La seule différence réelle dans l'affichage sur votre DrawingArea est que vous devez appeler la méthode draw_drawable au lieu de draw_pixbuf sur le Drawable.

Notez que je vous écris ceci de mémoire en utilisant Perl / Gtk2, et il ne peut pas la carte proprement à la langue que vous utilisez.

Autres conseils

Un GtkImage fonctionne très bien, et être plus simple que toutes les choses que vous avez énumérés; -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top