Pregunta

Estoy tratando de mostrar una imagen que me carga de un pixbuf (a partir de datos de la memoria) y la imagen se actualiza cada vez que (como el pixbuf también está cambiando con el tiempo). Mi pregunta es que desde la ventana sólo contendrá la imagen (que se actualiza periódicamente), qué necesito un dibujable GTK o un área de dibujo para esto? o puedo simplemente mostrar la imagen en la ventana? Otra opción sería utilizar el cairo. Puede alguien por favor sugerir una buena manera de hacerlo?

¿Fue útil?

Solución

cargar el archivo en un pixbuf, hay un constructor new_from_file o algo por ello.

Sí, crear un Área de Dibujo y pegarlo en una caja o algo en alguna parte.

A continuación, obtener la ventana de Dibujo padre (no será un método como get_window o algo para eso). Esta será su Disponibles.

Crea un contexto gráfico () GC -. Usted no necesita establecer ningún valor especial en ella

Conectar el DrawingArea a exponer a un evento. En el caso de exponer, tiene que llamar al método draw_pixbuf en el Disponibles con su pixbuf con la GC que ha creado.

Llame a este mismo método draw_pixbuf cada vez que actualice el pixbuf de alguna manera.

También puede considerar el uso de un mapa de píxeles en su lugar, si no va a cargar desde un archivo y tiene la intención de recurrir a ella. Un mapa de píxeles en sí es un Disponibles, por lo que puede dibujar directamente rectángulos y las cosas en él. La única diferencia real en la visualización en un DrawingArea es que es necesario llamar al método draw_drawable en lugar de draw_pixbuf en el Disponibles.

Tenga en cuenta que estoy escribiendo esto desde la memoria de la utilización de Perl / Gtk2, y puede que no se asignan limpiamente a cualquier idioma que se está utilizando.

Otros consejos

A GtkImage funciona muy bien, y ser más simple que todo lo que enumeró; -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top